![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
RejectiveΘ
前端ing
展开
-
关于c++继承中构造函数问题
继承中的构造问题问题首先我们知道,在c++继承时,创建子类对象会先默认 调用父类的默认构造函数,那么如果父类中并没有默认的构造(只有有参的情况下),父类中部分特性需要先初始化怎么办呢,我们会在父类中提供有参构造函数,但是在创建子类对象时会报错父类没有默认的构造函数,那么该怎么解决呢?第一种方法子类初始化列表法c++中在构造函数里,提供了初始化化列表的方法来初始化成员变量,同时也可以这些变量里也包括了父类的有参构造函数初始化列表的参与父类构造函数的使用方法类名(参数1,参数2,参数3):父类(参数原创 2021-01-12 01:26:15 · 1034 阅读 · 0 评论 -
c++ ---函数模板及注意事项
c++ —函数模板及注意事项类与对象是c++的核心编程,而模板是c++的泛型编程,可以提高程序的复用性模板的语法template<typename/(或者)class (随意名称)>那么,用代码来介绍一下模板之一-----函数模板#include<iostream>#include<string>using namespace std;//函数模板template<typename T>//声明一个模板,告诉编译器这个T的数据类型不要报错原创 2020-11-15 15:35:26 · 206 阅读 · 0 评论 -
c++ --虚析构和纯虚析构
c++ --虚析构和纯虚析构在c++中,我们知道在类内有些对象的成员需要在堆区创建空间,比如数组,其他类的对象做自己类的成员时需要创建空间,但是在调用多态中,需要父类指针或引用子类对象,那么在父类销毁指针时会调用父类的析构函数,那么子类的析构函数就不会被调用了,然后子类在堆区创建的空间就无法通过析构函数进行删除了,就会导致内存泄露,所以就要用虚析构或者纯虚析构来解决语法虚析构和纯虚析构的语法和虚函数与纯虚函数的语法相同虚析构 virtual ~类名(){}纯虚析构 virtual ~类名()=原创 2020-10-29 16:35:45 · 204 阅读 · 0 评论 -
c++ --纯虚函数和抽象类
纯虚函数和抽象类在c++多态中,父类的作用就是提供一个虚函数类方便进行多态,那么实际上父类的用处几乎等于没有,所以c++提供了纯虚函数和抽象类纯虚函数的语法virtual 返回值类型 函数名(参数列表)=0;只要在类中创建出纯虚函数,那么这个类就会变成抽象类,无法实例化对象,也就是无法创建对象,同时如果他的子类没有重写父类的虚函数,那么子类也会变成抽象类。抽象类相当于是一个接口这里来看看代码代码中提供了实现多态的两种方式父类的引用或指针指向子类对象#include<iostream原创 2020-10-23 15:04:19 · 112 阅读 · 0 评论 -
c++ --类多态 四则计算器
c++ 四则计算器用c++的类方式做一个四则运算计算器非常容易,只需要用成员函数就可以完成,而这里用多态的方法来做多态的特点1、代码组织结构清晰2、可读性强3、利于前期和后期的扩展和维护代码#include<iostream>#include<string>using namespace std;class abstractcalculator{public: virtual float getresult()//提供虚函数,方便多态 {原创 2020-10-17 20:35:42 · 771 阅读 · 0 评论 -
c++ --多态的语法
c++ 多态的语法多态的概念多态分为静态多态和动态多态静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态: 派生类和虚函数实现运行是多态静态多态和动态多态的区别静态多态的函数地址早绑定-编译阶段确认函数地址动态多态的函数地址晚绑定-运行是确定函数地址代码示例首先先创建三个类class animal//父类{public: virtual void speak() { cout << "动物在说话" << endl; }};cla原创 2020-10-17 16:05:20 · 233 阅读 · 0 评论