直接上图:

以及:

实践如下:

#include <iostream>
using namespace std; class Father{ private:
int father1;
int getFather1Private(){
return this->father1;
} protected:
int father2;
int getFather2Protected(){
return this->father2;
}
public:
int father3;
Father(){
this->father1 = ;
this->father2 = ;
this->father3 = ;
cout<< "无参构造器"<<endl;
}
// 基类构造器要加virtual的原因:
// 这是因为当用基类引用派生类的时候,如果此时对基类进行delete操作,对于没有虚函数析构函数,那么只会调用基类的析构函数,而对派生类的析构函数不会进行析构
virtual ~Father(){
cout<< "Father析构函数"<<endl;
}
Father(int aa){
this->father1 = aa;
this->father2 = ;
this->father3 = ;
cout<< "有参构造器"<<endl;
}
int getFather1(){
return father1;
}
int getFather2(){
return father2;
}
int getFather3(){
return this->father3;
}
}; class Son : public Father{ private:
int son1; public:
Son(){
this->son1 = ;
}
~Son(){
cout<< "Son析构函数"<<endl;
}
// 通过这样的方式调用父类构造器
Son(int fatherV, int sonV):Father(fatherV){
Father::father3 = fatherV;
this->son1 = sonV; }
int method(){
int value = son1 * Father::father3;
return value;
}
int getSon1(){
return son1;
} }; int main(){ cout << "类继承实践:" << endl; // 调用无参构造器
Son son1; // 有参构造器
Son son(,); // 在类外部仅有父类的public可以访问
// error: cout << "son.getFather1Private():" << son.getFather1Private() << endl;
// error: cout << "son.getFather2Protected():" << son.getFather2Protected() << endl;
cout << "son.getFather1():" << son.getFather1() << endl;
cout << "son.getFather2():" << son.getFather2() << endl; cout << "son.father3:" << son.father3 << endl;
// error: cout << "son.father2:" << son.father2 << endl; cout << "son.getSon1():" << son.getSon1()<< endl; //cout << "son.father3:" << son.son1 << endl;
cout << "son.method():" << son.method() << endl; // https://blog.csdn.net/u014453898/article/details/60402586
// 这是因为当用基类引用派生类的时候,如果此时对基类进行delete操作,对于没有虚函数析构函数,那么只会调用基类的析构函数,而对派生类的析构函数不会进行析构
Father *ptr = new Son();
cout << "泛型:" << ptr->father3 << endl;
delete ptr; cout << "类继承 实践 end." << endl; return ;
}

C++类继承方式及实践的更多相关文章

  1. threading 多线程类继承方式调用

    import threading #线程import time class Work(threading.Thread): def __init__(self,n): threading.Thread ...

  2. C++学习笔记(十二):类继承、虚函数、纯虚函数、抽象类和嵌套类

    类继承 在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生. 从一个基类派生的继承称为单继承:从多个基类派生的继承称为多继承. //单继承的定义 class B:public A { ...

  3. C++中的类继承(1) 三种继承方式

    继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一.简单的说,继承是指一个对象直接使用另一对象的属性和方法.继承呈现了 面向对象程序设 计的层次结构, 体现了 由简单到复杂的认知过程. ...

  4. JS类继承常用方式发展史

    JS类继承常用方式发展史 涉及知识点 构造函数方式继承 1-继承单个对象 1.1 多步走初始版 1.2 多步走优化版 1.3 Object.create()方式 2-继承多个对象 2.1 遍历 Obj ...

  5. Object-C的类可以多重继承吗?可以实现多个接口吗?category是什么?重写一个类的方式用继承好还是分类好,为什么?

    Object-C的类可以多重继承吗?可以实现多个接口吗?category是什么?重写一个类的方式用继承好还是分类好,为什么? 答:Object-c的类不可以多重继承,可以实现多个接口(协议),Cate ...

  6. mfc 类三种继承方式下的访问

    知识点 public private protected 三种继承方式 三种继承方式的区别 public 关键字意味着在其后声明的所有成员及对象都可以访问. private 关键字意味着除了该类型的创 ...

  7. 理解C++类的继承方式(小白)

    基类里的 public(大人) protect(青年) private(小孩) 在通过继承时  继承方式public(我是大人咯) protect(我是青少年) private(我系小孩纸啦) &qu ...

  8. C++ 类中的3种访问权限和继承方式

    访问权限:public 可以被任意实体访问,protected 只允许子类(无论什么继承方式)及本类的成员函数访问,private 只允许本类的成员函数访问.三种继承方式分别是 public 继承,p ...

  9. C++ 中三种继承方式的理解

    一.公有继承(public inheritance) 1.概念:当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性在派生类中不变,而基类的私有成员不可以直接访问. 实验一下:   我们用代 ...

随机推荐

  1. 为SourceInsight添加多行注释功能菜单

    由于项目看代码主要使用的是Source Insight,习惯了其他编辑器的多行注释功能,对此感到很不习惯,查询网上程序,可以自行添加. 1.打开project,选择base项目中的utils.em,添 ...

  2. Delphi RadioGroup 组件

  3. centos 7 搭建 LNMP ( Linux+Nginx+MySQL+PHP )

    操作系统 | CentOS Linux release 7.6.1810 (Core) [root@localhost ~# cat /etc/redhat-release CentOS Linux ...

  4. MyEclipse_10.7安装及破解

    MyEclipse_10.7 0.解压文件如下两图操作:1.运行安装程序,双击myeclipse-10.7-offline-installer-windows.exe进入安装界面,下一步:2.同意协议 ...

  5. Linux课程学习 第二课

    工欲善其事,必先利其器 虚拟机安装(链接中有详细的操作方法,这里就不再详细说明了,但有注意事项,会在下文中截图标注) https://www.linuxprobe.com/  注:为了避免是权限问题导 ...

  6. windows电脑上安装虚拟机

    1.搭建虚拟机环境 1)先安装VMware10,在本机上双击VMware10.exe,安装过程要用密钥,双击VM10KeyGen.exe会生成密钥,输入就可以了 2)在VMware中新建虚拟机,加载系 ...

  7. jekens安装

    https://jenkins.io/zh/download/ Generic Java package (.war) 下载jenkins.war文件 将jenkins.war发布到tomcat服务器 ...

  8. CF1111E Tree 动态规划+LCT

    这个题的思路非常好啊. 我们可以把 $k$ 个点拿出来,那么就是求将 $k$ 个点划分成不大于 $m$ 个集合的方案数. 令 $f[i][j]$ 表示将前 $i$ 个点划分到 $j$ 个集合中的方案数 ...

  9. Head First设计模式 1 设计模式入门 策略模式 观察者模式

    关于基本的OOP特征: OOP的几大特征是抽象 继承 封装 多态. 我们把共同的部分抽象出来作为抽象类的存在,使用继承和接口来实现多态,然后私有的部分封装起来.一定程度上说,这些概念都是简单的设计模式 ...

  10. python 安装第三方包

    python环境是Anaconda3安装的,由于项目需要用到git的第三方包,但是在conda自带的环境中没有. 例如使用jieba分词库. 安装的三种方式: (1)全自动安装:`easy_insta ...