Fork me on GitHub
上一页 1 ··· 85 86 87 88 89 90 91 92 93 ··· 119 下一页
摘要: 一个接口,可以使用不同的硬件。 #include<iostream> using namespace std; class Cpu { public: virtual void calculate() = 0; }; class VideoCard { public: virtual void di 阅读全文
posted @ 2019-12-26 16:14 西西嘛呦 阅读(273) 评论(0) 推荐(0)
摘要: 多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用子类的析构代码。 解决方式:将父类中的析构函数改为虚函数或純虚函数。 虚析构函数和純虚函数的共性: 可以解决父类指针释放子类对象; 都需要有具体的函数实现; 虚析构和析构函数的区别: 如果是純虚析构,该类属于抽象类,无法实例化对象。 阅读全文
posted @ 2019-12-26 15:38 西西嘛呦 阅读(361) 评论(0) 推荐(0)
摘要: 制作饮品的过程大致为:煮水、冲泡、倒入杯中、加入调料。 #include<iostream> using namespace std; class AbstractDrink { public: virtual void Boil() = 0; virtual void Brew() = 0; vi 阅读全文
posted @ 2019-12-26 15:23 西西嘛呦 阅读(274) 评论(0) 推荐(0)
摘要: 在多态中,通常父类中虚函数的实现是毫无意义的,主要都是调用子类重写的内容。 因此可以将虚函数改为纯虚函数。 純虚函数语法:virtual 返回值类型 函数名(参数列表)=0; 当类中有了純虚函数,这个类也被称为抽象类。 抽象类特点: 无法实例化对象; 子类必须重写抽象类中的纯虚函数,否则也属于抽象类 阅读全文
posted @ 2019-12-26 15:11 西西嘛呦 阅读(141) 评论(0) 推荐(0)
摘要: 案例描述:利用普通技术和多态技术分别实现两个操作数进行运算的计算器类。 多态的优点:代码结构清晰;可读性强;利于前期和后期的扩展以及维护; #include<iostream> using namespace std; //普通写法,如果想扩展,需要修改源码 //在实际开发中,提倡开闭原则,对扩展进 阅读全文
posted @ 2019-12-26 15:06 西西嘛呦 阅读(515) 评论(0) 推荐(1)
摘要: 多态又分为两类: 静态多态:函数重载和运算符重载 动态多态:派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定-编译阶段 动态多态的函数地址晚绑定-运行阶段 #include<iostream> using namespace std; class Animal{ pu 阅读全文
posted @ 2019-12-26 11:20 西西嘛呦 阅读(181) 评论(0) 推荐(0)
摘要: C++程序的内存格局通常分为四个区: 全局数据区(data area),代码区(code area),栈区(stack area),堆区(heap area)(即自由存储区)。 全局数据区存放全局变量,静态数据和常量; 所有类成员函数和非成员函数代码存放在代码区; 为运行函数而分配的局部变量、函数参 阅读全文
posted @ 2019-12-26 11:19 西西嘛呦 阅读(641) 评论(0) 推荐(0)
摘要: 例子: #include<iostream> using namespace std; class BasePage { public: void header() { cout << "公共头部" << endl; } void footer() { cout << "公共尾部" << endl; 阅读全文
posted @ 2019-12-26 10:41 西西嘛呦 阅读(199) 评论(0) 推荐(0)
摘要: 函数调用运用()也可以重载。 由于重载后的使用方法非常像函数的调用,因此称为仿函数。 仿函数没有固定写法,非常灵活。 #include<iostream> using namespace std; class MyPrint { public: void operator()(string test 阅读全文
posted @ 2019-12-26 09:43 西西嘛呦 阅读(426) 评论(0) 推荐(0)
摘要: #include<iostream> using namespace std; class Person { public: Person(string name,int age) { m_Name = name; m_Age = age; } string m_Name; int m_Age; b 阅读全文
posted @ 2019-12-26 09:35 西西嘛呦 阅读(395) 评论(0) 推荐(0)
上一页 1 ··· 85 86 87 88 89 90 91 92 93 ··· 119 下一页