上一页 1 2 3 4 5 6 7 8 ··· 12 下一页
new/delet 是C++编译器实现的关键字,以类型为单位分配,申请时可以初始化内存 malloc/free 是C库实现的函数,以字节为单位分配,并不会初始化内存 构造函数不可能成为虚函数:在构造函数执行完后,虚函数表和虚函数表指针才会初始化。 析构函数可以成为虚函数:尽量将析构函数声明为虚函数。 Read More
posted @ 2019-05-13 15:23 张不源 Views(344) Comments(0) Diggs(0) Edit
多重继承会产生多个虚函数表: vptr1指向继承自A的虚函数表,vptr2指向继承自B的虚函数表 如果要强制转化一个类到另外一个类用class2* p = dynamic_cast<class2>(p1); 单继承某个类+实现多个接口: 多继承时在子类出现了多个虚函数表指针,通过dynamic_ca Read More
posted @ 2019-05-13 11:19 张不源 Views(383) Comments(0) Diggs(0) Edit
多重继承:一个类继承了多个父类。 特点: 1. 拥有全部父类的成员变量和成员函数 2. 子类可以当作任一父类使用 语法: 多重继承的构造函数? 先父类,后同级,再自己。 析构函数调用顺序?先自己,后同级,再父类。 使用指针时子类退化为哪一个父类?通过多重继承得到的对象可以拥有多个的代表自己的地址值。 Read More
posted @ 2019-05-12 20:27 张不源 Views(794) Comments(0) Diggs(0) Edit
抽象类: 1. 表示现实世界的抽象概念(动物对于猪) 2. 不能用来创建对象,只能用来定义类型或继承(必须重写相关函数)或定义指针 3. 抽象类内部函数没有具体实现 抽象类的实现: 1. 当类中定义了纯虚函数,这个类就是抽象类。 2.纯虚函数是只定义了函数声明的虚函数 抽象类语法: 抽象类的多态: Read More
posted @ 2019-05-12 18:23 张不源 Views(125) Comments(0) Diggs(0) Edit
对象对象模型:对象在内存是如何存放的 存放规则: 1. class内存对齐规则和struct相同。 2. class 成员函数和成员变量分开存放,每个对象有独享的成员变量(堆栈全局数据),同一类的所有对象共享同一成员函数(代码段)。 3. 调用成员函数时将对象地址传递给成员函数(隐式传递),成员函数 Read More
posted @ 2019-05-12 15:25 张不源 Views(178) Comments(0) Diggs(0) Edit
多态:同样的语句再运行时有多种不同的表现形式(根据对象的实际类型来调用相应的函数,不会弱化成父类) 多态性:通过指向子类的父类指针或引用,可以访问子类中的同名覆盖的成员函数。 多态的体现:虚函数的重载 虚函数:根据指针指向的对象的类型,来执行不同类的同名覆盖函数,实现同一语句的不同行为。 虚函数关键 Read More
posted @ 2019-05-11 14:19 张不源 Views(578) Comments(0) Diggs(0) Edit
函数覆盖: 发生在使用父类指针或引用指向子类对象时: 1. 子类对象退化为父类对象 2. 只能访问父类中定义的成员。 3. 可以直接访问被子类覆盖的同名成员。 函数重写: 1. 子类中重定义了与父类完全相同的函数。 2. 重定义发生在继承中时就叫重写。 3. 函数重写只是一种特殊的同名覆盖(函数名和 Read More
posted @ 2019-05-11 12:02 张不源 Views(762) Comments(0) Diggs(0) Edit
父子间的同名成员变量: 子类成员将隐藏父类的成员,但是父类成员变量只是被隐藏,父类的同名函数依旧存在于子类中。 可以通过作用域分辨符( :: )访问父类的同名同名变量。 通过子类对象调用同名变量时,只会调用子类的成员变量。 父子间的同名成员函数: 子类继承父类时同名函数不是函数重载,原因是作用域不同 Read More
posted @ 2019-05-11 10:37 张不源 Views(423) Comments(0) Diggs(0) Edit
子类构造函数必须对继承的成员进行初始化: 1. 通过初始化列表或则赋值的方式进行初始化(子类无法访问父类私有成员) 2. 调用父类构造函数进行初始化 2.1 隐式调用:子类在被创建时自动调用父类构造函数(只能调用父类的无参构造函数和使用默认参数的构造函数) 2.2 显示调用:在含参构造函数的初始化列 Read More
posted @ 2019-05-10 19:55 张不源 Views(2032) Comments(0) Diggs(0) Edit
C++中三种不同的继承方式: 1. public继承。父类子成员在子类中保持原有的访问级别。 2. private继承。父类的所有成员在子类变成私有成员。 3. protected继承。父类中的公有成员变成保护成员,其他成员不变。 一般只使用public继承。 C++派生语言只支持public继承。 Read More
posted @ 2019-05-10 17:50 张不源 Views(113) Comments(0) Diggs(0) Edit
上一页 1 2 3 4 5 6 7 8 ··· 12 下一页