
面向对象
SF_WJ
淮安
展开
-
赋值构造函数
一.什么是赋值构造函数*当程序执行f2=f1时,自动调用赋值构造函数,也是浅拷贝(位拷贝).*如下代码:Human f1, f2; f2 = f1; f1.description(); f2.description(); cout << "------------------" << endl; f1.setAddr("新加坡"); f1.descr...原创 2019-09-08 15:38:31 · 2967 阅读 · 1 评论 -
拷贝构造函数
拷贝构造函数一. 什么是拷贝构造函数:默认拷贝构造函数(浅拷贝):浅拷贝构造函数即系统自带的拷贝构造函数,当程序将一个已经定义的对象数据给另一个对象作为初始值时,并且程序为自定义拷贝构造函数,系统就会自动调用默认拷贝构造函数.形式:自定义拷贝构造函数(深拷贝)Human h1(25, 28000);//调用自定义的构造函数 Human h2 = h1; //调用拷贝构造函数 ...原创 2019-09-08 11:00:02 · 1550 阅读 · 4 评论 -
类的静态数据成员和静态成员函数
一.什么是类的静态成员静态成员变量和全局变量都存储在全局/静态区,它们都是在程序编译时创建,直到编译结束才被收回.所以全局变量和静态成员变量的功能差不多,只是创建的方式不同,类的静态成员创建在类中,全局变量创建在程序开头.二.为什么要用类的静态成员而不用全局变量全局变量在c中得心应手,而在c++中却力不从心.全局变量定义在程序开头,一旦全局变量多了,就会降低程序的可读性,并且这样定义变量会使...原创 2019-09-08 23:37:50 · 1376 阅读 · 0 评论 -
const数据成员和const成员函数
const数据成员:const数据成员是只读数据,const数据成员只能在初始化列表里赋值,不能在函数内部赋值.const string bloodType;Human::Human():bloodType("未知"){ //1}Human::Human(int age, int salary,string bldType):bloodType(bldType){ //2}类...原创 2019-11-07 10:35:04 · 327 阅读 · 0 评论 -
子类对父类的访问权限
*无论通过什么方式(public,protected,private)继承,在子类内部均可以访问父类中的public,protected成员.private成员不可以访问(如果想要子类可以访问,就定义为protected)***继承方式只影响外界通过子类对父类成员的访问权限** public继承,父类成员的访问权限全部保留至子类: protected继承,父类public成员的访问权限在...原创 2019-11-06 20:14:23 · 1592 阅读 · 0 评论 -
使用继承和派生的时机
1.准备实现多个类,但是这些类在现实世界中有某种特殊关系例如:人,男人,女人如果完全独立的实现这3个类,将有很多重复代码,而且不利于以后的维护2.准备构建一个类,但是这个类与已经开发好的某个类非常相似,而且在现实世界中具有某种特殊关系例如:ONE PLUS1,ONE PLUS5class ONE PLUS5:ONE PLUS13.对多个已经实现的类(这些类有某种特殊关系),进行重构一...原创 2019-11-06 20:05:55 · 173 阅读 · 0 评论 -
派生和继承的3中方式
public继承(使用最频繁)父类中定义的成员(数据成员和函数成员)被继承后,访问权限不变!public --> publicprotected --> protectedprivate --> privateprivate继承父类中定义的成员(数据成员和函数成员)被继承后,访问权限都变成privatepublic --> pri...原创 2019-11-06 19:57:42 · 170 阅读 · 0 评论 -
成员的访问权限总结
public:外部可以直接访问通过对象来访问成员private:外部不可以访问自己的成员函数内,可以访问protected:protected和private非常相似,和private的唯一区别:protected:子类的成员函数中可以直接访问(保护子类可以访问)private:子类的成员函数中不可以访问...原创 2019-11-06 19:48:56 · 380 阅读 · 1 评论 -
继承与派生
什么是继承和派生父亲"派生"出儿子儿子"继承"自父亲继承和派生,本质是相同的,只是从不同角度来描述.如下图是继承和派生在UML中的表现除了"构造函数"和"析构函数",父类的所有成员函数,以及数据成员,都会被子类继承父类的私有数据,子类访问不了怎么办?1.在父类中把私有类型数据改成保护类型2.调用父类,getName(),getAge()方法,获取私有数据注:1.子类对象调用方...原创 2019-11-06 19:41:56 · 167 阅读 · 0 评论