-
类外定义查看全部
-
类内定义:成员函数的函数体写在类的内部。编译器会将类内定义按照内敛函数的方式进行 编译,但函数太复杂时,只能按普 通函数进行编译,因为内联函数是一简单函数为条件的 类外定义:成员函数的函数体写在类的外面查看全部
-
定义一个Student类,包含名字一个数据成员,使用get和set函数封装名字这个数据成员。在main函数中通过new实例化对象,并打印其相关函数。查看全部
-
数据的封装查看全部
-
定义一个Student类,包含名字和年龄两个数据成员,实例化一个Student对象,并打印出其成两个数据成员查看全部
-
c++访问限定符查看全部
-
101查看全部
-
string类型查看全部
-
从堆中实例化对象查看全部
-
小结: 类: 成员函数,数据成员 数据成员: 普通数据成员,string,const成员, 对象成员, 静态数据成员 成员函数: 属性封装函数(get/set) 特殊函数(构造函数(拷贝构造函数 默认构造函数)析构函数) 一般功能函数 成员函数: 引用,const,参数默认值,函数重载 实例化对象: 对象实例化 堆中实例化 栈中实例化查看全部
-
class Student { public: Student(){cout<<"student"<<endl;}//默认构造函数 Student(const Student&stu){cout<<"copy"<<endl;}//拷贝构造函数 ~Student(){cout<<"~student"<<endl;system("pause");}//析构函数 private: string m_strName; }; int main(void) { Student stu1; Student stu2=stu1; Student stu3(stu1); } 控制台输出结果: student copy copy 请按任意键继续. . . ~student 请按任意键继续. . . ~student 请按任意键继续. . . ~student 请按任意键继续. . .查看全部
-
析构函数 定义格式:~类名() 1.如果没有析构函数,系统自动生成一个析构函数。 2.析构函数在对象销毁时自动调用。 3.析构函数没有返回值参数也不能重载。 对象的生命历程 申请内存-初始化列表-构造函数-参与运算-析构函数-释放内存 析构函数 ( 在对象销毁前,自动调用,归还系统资源)查看全部
-
拷贝构造函数:定义格式:类名(const 类名&变量名) 1.如果没有自定义拷贝构造函数则系统自动生成一个默认的拷贝构造函数. 2.当采用直接初始化或者复制初始化实例化对象时系统自动调用拷贝构造函数。 class Student { public: Student(){cout<<"student";}//默认构造函数 Student(const Student&stu){}//拷贝构造函数 private: string m+strName; }; int main(void) { Student stu1;//调用默认构造函数 Student stu2=stu1;//调用拷贝构造函数 Student stu3(stu1);//调用拷贝构造函数 }查看全部
-
默认构造函数: 在实例化对象时不需要传递参数的构造函数 如: Student(){...} Student(string name="Jim"){...} 构造函数初始化列表:使用初始化列表的执行效率更高 class Student { public: Student():m_strName("Jim"),m_iAge(18){} private: string m_strName; int m_iAge; }; 1.初始化列表先于构造函数执行; 2.初始化列表只能用于构造函数; 3.初始化列表可同时初始化多个数据成员 初始化列表可以用于给类的常量成员变量赋值: class Circle { public: Circle cir():m_dPi(3.14){}//初始化列表赋值 //Circle cir(){m_dPi=3.14}//编译出错,常量不可再赋值 private: const double m_dPi; }查看全部
-
内存分区分为栈区、堆区、全局区、常量区、代码区。 栈区: int x=0; int *p=NULL;//内存由系统控制 堆区: int *p=new int[20];//需要程序员自己用new,delete管理 全局区: 存储全局变量及静态变量 常量区: string str="hello"; 代码区: 存储逻辑代码的二进制 对象初始化: 注意:初始化函数时的未初始化或者重复初始化会造成代码严重错误! 因此需要构造函数。 构造函数 1.在对象实例化时自动被调用 2.构造函数与类同名 3.构造函数没有返回值 4.可以有多个重载 5.实例化对象时仅用到一个构造函数 6.用户没有定义构造函数时,编译器自动生成一个构造函数 构造函数与类名同名, 无返回值,可有参,可无参,可重载, 可多次重载! class Student { public: Student(){m_strName="Jim";} Student(string name){m_strName=name;} private: string m_strName; };查看全部
举报
0/150
提交
取消