第66回

构造函数是用来给类的数据成员进行初始化的
构造函数是特殊的成员函数,特殊点在于: 1、构造函数的函数名与类的名字一样 2、没有返回值,就连void都不允许写,
构造函数一般都是public公有的
如下图所示,没有参数的构造函数是“默认的构造函数”

#include <iostream>
using namespace std;
class Person
{
public:
Person():money(0) //这种写法叫做:构造函数的初始化列表,这种初始化数据成员的方法是最好的
{
//这个里面也可对数据成员进行初始化
}
public:
int money;
};
int main()
{
// a,me, 都是对象,原来是没有这两个对象的
Person a; //创建对象a时,通过调用Person的构造函数创建对象
Person me; //这一行也是创建对象
cout << a.money << endl;
cout << me.money << endl;
return 0;
}
注意:对于局部对象,C++会自动创建一个默认的构造函数,这个默认的构造函数会把类类型(eg. string)进行正确的初始化,但是对基本的数据类型不会进行精确的初始化(换言之,给局部对象的基本类型数据成员的赋值是直接用的内存中上次留下来的的垃圾数据)
对于全局对象,C++也会自动创建一个默认的构造函数,而且能合理的初始化(不是随便用的上次内存中的垃圾数据初始化,比如:string 类型初始化为 空字符串,int类型初始化为0)
但是,对于静态的局部对象,C++创建的默认的构造函数对成员变量的初始化规则和全局变量一样,都能合理的进行初始化
注意:构造函数的函数体也可以写在类的外面
注意,对于类,我们都是创建一个头文件,而且头文件的名称与类的名称是一样的,然后我们再设计一个源文件,源文件的名字也和类的名字相同,然后这个源文件中要include这个头文件,然后,类的定义放在头文件中,类中的函数的具体实现放在源文件中(详见demo14的代码),然后,其他的需要调用这个类的源文件的前面include这个类的头文件即可(详见demo14的代码)。
第67回

第68回

不要使用局部函数声明!函数的声明要放到头文件中!
第69回

第70回

第71回

在 C和 C++ 中,函数的名称就是指向这个函数地址的指针
第72讲

注意:保存在容器中的对象必须可以复制
如下图所示,凡是可以接收父类的地方,都可以接收子类(这种现象就叫做 多态)
第73回
流的条件状态


上图代码表示:输入是否到了ctrl+z这个结束符
下图中,当cin为bad,fail,eof时,这个cin>>value 都会跳出循环

下图中,只要cin不是eof,那么循环就继续

第74回


被折叠的 条评论
为什么被折叠?



