类与对象的概念
一、类的特点:
1、只是一种类型;
2、类中的数据成员不占内存;
3、定义数据成员时;
4、不能定义该类类型的变量;
二、对象成员
1、public:存取该类成员以及所有对象;
2、protected:存取该类及其子类成员;
3、private:存取该类的成员;
构造函数与析构函数
一、构造函数的特点
1、函数名必须与定义他的类同名;
2、没有返回值,如果在构造函数前见void是错误的;
3、被声明定义为公有函数;
4、在建立对象时由系统自动调用;
5、可重载,定义多个构造函数;
二、构造函数与其他函数的区别
1、命名是必须和类名完成相同,而一般函数则不能和类名相同 ;
2、没有返回值,且不用void来修饰,而一般函数没有返回值则必须用void来说明;
3、在创建对象的时候才会被便以其自动调用, 而一般函数在程序执行到它的时候别调用;
4、当没用定义构造函数的时候,编译器会提供一个默认的构造函数,而一般的函数不会;
三、析构函数的特点
1、没有任何参数,不能被重载;
2、没有返回值;
3、在类名前面加上一个逻辑非运算符“~”;
四、拷贝构造函数与构造函数的区别
1、用一个常量初始化新建立的对象时,调用构造函数,不调用拷贝构造函数;
2、建立对象时,构造函数与拷贝构造函数有且仅有一个被调用;
友元
一、友元关系的特点
1、友元关系是不能传递的,如:B类是A类的友元,C类是B类的友元,C类和A类之间如果没有声明,就没有任何友元关系;
2、友元关系是单向的,如:声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但是A类的成员函数却不能访问B类的私有和保护数据;
二、友元关系的优点
提高了数据的共享性,加强了函数与函数之间,类与类之间的互相联系,大大提高了程序的效率。
三、友元关系的缺点
破坏了数据隐藏和数据封装,导致程序的可维护性变差。
对象的内存空间分布
一、对象内存空间的释放
1、全局对象在程序结束时释放;
2、局部对象在函数调用结束的时候释放;
3、动态对象需要使用 delete语句释放;
4、对象成员函数在所有对象生命周期结束时自动释放;