钱能c++第9章以前的笔记
2016-04-17 12:17
316 查看
变量和对象本质没有什么差别,都是占据空间的数据描述体。 差别在于变量用的是内部数据,对象用的是外部数据(程序员自定义)
int a(1); 等价于int a=1;
<< 输出流连用的时候,比如 <<a<<b<<c 必须包含头文件iomanip
ifstream fin(filename,openmode=ios::in);
串操作:
string s;
getline(sin,s);
cout<<s<<endl
这三行可以输出 s串
ifstream in("aaa.txt"); aaa.txt进入输入流
getline(in,s); 从输入流 in中逐行读入数据到s中, s是 string s;
vector 可以说是数组加强版
a.size() 这种方式叫做调用对象a的成员函数size()
&表示实体地址。 &22 这是一种错误的写法
class Date{
int year,month,day;
public:
void set(int y,int m,int d);
bool isLeapYear();
void print();
}; // 注意 类定义花括号后面有分号的,结构体也是。 类机制最初就是在 结构的基础上改进的。 JAVA的类定义后面是没有分号的 -、-
这是一个基本的类,其实就是在结构体的基础上加上Public 以及一些函数
public下的函数表示可以被外界 引用, 是公用的
void Date::set(..........)
{ }
定义Date的成员函数的时候,要像上面这样,加两个冒号。 如果 set函数是定义在Date类里面的话,就不需要声明 Date:: 直接像普通函数那样写就OK了。 就像在自己家里一样不需要那么多称呼。 一般来说,如果不多于3个函数,则一般函数定义都写在类里面
类是抽象的,对象是类的具体化
Date *dd=new Date; 创建Date类的对象 dd
dd->menberfunction( ); // 引用成员函数
这样写看着更顺眼一点
Date dd=new Date(); //对象在动态内存区
dd.menberfunction( );
当然 也可以这样(貌似) Date dd; 就像定义普通变量一样
成员函数如果只对对象进行读操作,则可以定义为常成员函数。读操作,不会改变数值,这样子如果调试的时候出错,可以排除这些常成员函数,一般不会是它们导致的BUG。然后就可以考虑其他方面啦,提高了调试的效率。
常成员函数写法: void print( ) const;
重载 :几个函数有相同的名字,但是他们的参数不同(一般是参数数量或者形式不同),内容也不同,可以根据调用时的实参来区分他们
关于重载,有这几个要求:不能创建新的操作符 比如 @ ,不能重载 “::” “ . " ".*”
重载后 操作符的优先级和结合性还是不变的。
==============================================================
类里面的 private, public 这种叫做访问控制符
P270 把类比作电视机,很形象地比喻
C++的对象和变量一样,可以要用的时候再去创建,没必要一开始在函数开头就建好
折构函数与构造函数想对应,折构函数 的职能是 人为的动态内存释放
对象构造与折构的关系是 入栈与出栈的关系
int a(1); 等价于int a=1;
<< 输出流连用的时候,比如 <<a<<b<<c 必须包含头文件iomanip
ifstream fin(filename,openmode=ios::in);
串操作:
string s;
getline(sin,s);
cout<<s<<endl
这三行可以输出 s串
ifstream in("aaa.txt"); aaa.txt进入输入流
getline(in,s); 从输入流 in中逐行读入数据到s中, s是 string s;
vector 可以说是数组加强版
a.size() 这种方式叫做调用对象a的成员函数size()
&表示实体地址。 &22 这是一种错误的写法
class Date{
int year,month,day;
public:
void set(int y,int m,int d);
bool isLeapYear();
void print();
}; // 注意 类定义花括号后面有分号的,结构体也是。 类机制最初就是在 结构的基础上改进的。 JAVA的类定义后面是没有分号的 -、-
这是一个基本的类,其实就是在结构体的基础上加上Public 以及一些函数
public下的函数表示可以被外界 引用, 是公用的
void Date::set(..........)
{ }
定义Date的成员函数的时候,要像上面这样,加两个冒号。 如果 set函数是定义在Date类里面的话,就不需要声明 Date:: 直接像普通函数那样写就OK了。 就像在自己家里一样不需要那么多称呼。 一般来说,如果不多于3个函数,则一般函数定义都写在类里面
类是抽象的,对象是类的具体化
Date *dd=new Date; 创建Date类的对象 dd
dd->menberfunction( ); // 引用成员函数
这样写看着更顺眼一点
Date dd=new Date(); //对象在动态内存区
dd.menberfunction( );
当然 也可以这样(貌似) Date dd; 就像定义普通变量一样
成员函数如果只对对象进行读操作,则可以定义为常成员函数。读操作,不会改变数值,这样子如果调试的时候出错,可以排除这些常成员函数,一般不会是它们导致的BUG。然后就可以考虑其他方面啦,提高了调试的效率。
常成员函数写法: void print( ) const;
重载 :几个函数有相同的名字,但是他们的参数不同(一般是参数数量或者形式不同),内容也不同,可以根据调用时的实参来区分他们
关于重载,有这几个要求:不能创建新的操作符 比如 @ ,不能重载 “::” “ . " ".*”
重载后 操作符的优先级和结合性还是不变的。
==============================================================
类里面的 private, public 这种叫做访问控制符
P270 把类比作电视机,很形象地比喻
C++的对象和变量一样,可以要用的时候再去创建,没必要一开始在函数开头就建好
折构函数与构造函数想对应,折构函数 的职能是 人为的动态内存释放
对象构造与折构的关系是 入栈与出栈的关系
相关文章推荐
- C++编程基础笔记章节八
- A率13折线PCM编码的C语言实现
- c语言之模拟实现求子串(strstr)函数
- [LeetCode]137. Single Number II
- C++编程基础笔记章节七
- K-Means算法的C语言实现
- C语言每日小练(四)——勇者斗恶龙
- C++编程基础笔记章节六
- C++编程基础笔记章节五
- C++ 笔试题集锦(2)
- C语言入门(1)——C语言概述
- C++编程基础笔记章节三
- [LeetCode]136. Single Number
- c++模板特化和偏特化
- vs2010 C++ 生成类图
- 全排列使用 c++ STL
- [LeetCode]135. Candy
- 用递归解决八皇后问题,C++语言实现
- move_zero(linklist version)
- c/c++比较灵活的方法:回调函数和函数指针