摘要: 1.泛型编程 概念:不考虑具体数据类型的编程方式 函数模板: template关键字用于声明开始进行泛型编程 typename关键字用于声明泛指类型 template <typename T> // template : 告诉编译器开始泛型编程 // typename : 告诉编译器T是一个泛指类型 阅读全文
posted @ 2019-12-07 11:26 人民广场的二道贩子 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 1.关于动态内存分配 === new 和 malloc 的区别是什么? delete 和 free 的区别是什么? new 关键字与 malloc 函数的区别: a. new关键字是c++的一部分 malloc是由c库提供的函数 b. new以具体类型为单位进行内存分配 malloc以字节为单位进行 阅读全文
posted @ 2019-12-07 10:32 人民广场的二道贩子 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 1.多重继承的问题(三) === 多重继承可能产生多个虚函数表 eg: include include using namespace std; class BaseA { public: virtual void funcA () { cout funcA(); // 调用指针,指向虚函数表。在表 阅读全文
posted @ 2019-12-06 16:52 人民广场的二道贩子 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1.c++中的多重继承 === a.c++支持编写多重继承的代码 b.一个子类可以拥有多个父类 c.子类拥有父类的成员变量 d.子类继承所有父类的成员函数 e.子类对象可以当做任意父类对象使用(退化) 语法规则: class Derived : public BaseA, public BaseB, 阅读全文
posted @ 2019-12-05 16:17 人民广场的二道贩子 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1.什么是抽象类 === a.可用于表示现实世界中的抽象概念 b.是一种只能定义类型,而不能产生对象的类 c.只能被继承被重写相关函数 (不能创建对象,只能用于继承,可以用来定义指针) d.直接特征是 相关函数没有完整的实现 2.抽象类与纯虚函数 === a.c++语言中没有抽象类的概念 b.c++ 阅读全文
posted @ 2019-12-05 13:34 人民广场的二道贩子 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.继承的对象模型 === 子类是由父类成员 叠加 子类新成员得到的(相当于在子类中开辟了一段内存来存储父类成员) class Derived : public Demo { int mk; }; 2.多态对象模型 === 多态是概念,虚函数是实现多态的方法 c++多态的实现原理 a.当类中声明虚函 阅读全文
posted @ 2019-12-04 16:34 人民广场的二道贩子 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 1.class分析 === a.class是一种特殊的struct b.在内存中class依旧可以看做变量的集合 c.class与struct遵循相同的内存对齐规则 d.class的成员函数与成员变量是分开存放的 1).每个对象有独立的成员变量 2).所有对象共享类中的成员函数 2.对象分析 === 阅读全文
posted @ 2019-12-04 16:04 人民广场的二道贩子 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1.面向对象中期望的行为 === a.根据实际的对象类型判断如何调用重写函数 b.父类指针(引用)指向 1).父类对象则调用父类对象中定义的函数 2).子类对象则调用子类对象中定义的函数 2.面向对象中的多态的概念 === a.根据实际的对象类型决定函数调用的具体目标 b.同样的调用语句在实际运行时 阅读全文
posted @ 2019-12-02 11:16 人民广场的二道贩子 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 1.父子间的赋值兼容(兼容性) === a.子类对象可以直接赋值给父类对象 b.子类对象可以直接初始化父类对象 c.父类指针可以直接指向子类对象 d.父类引用可以直接引用子类对象 赋值 指针(退化) 子类 == 父类 子类 == 父类 初始化 引用(退化) 当父类指针(引用)指向子类对象时 a.子类 阅读全文
posted @ 2019-12-02 10:25 人民广场的二道贩子 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 1.子类和父类中的同名成员变量 === a.子类可以定义父类中的同名成员 b.子类中的成员将隐藏父类中的同名成员(同名覆盖) c.父类中的同名成员依然存在于子类中 d.可以通过 作用域分辨符(::) 访问父类中的同名成员 eg: Child c; c.mi = 100; // 子类中的 mi c.P 阅读全文
posted @ 2019-11-28 16:35 人民广场的二道贩子 阅读(147) 评论(0) 推荐(0) 编辑