直接上图:

以及:

实践如下:

#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. eclipse导入myeclipse中的项目(如何把Webroot改为WebContent)

    1.进入项目目录,找到.project文件,打开. 2.找到…代码段. 3.在第2步的代码段中加入如下标签内容并保存: org.eclipse.wst.common.project.facet.cor ...

  2. Spingboot使用log4j2

    1.pom.xml加入log4j2,并同时把spring boot默认的logging去掉,注意一定要全部排除否则会报错. <dependency> <groupId>org. ...

  3. Linux 配置:Xmanager连接Linux图形界面

    想要在远程终端使用用图形界面来操作和控制Linux服务器,就在windows下像使用MSTSC一样.linux通过XDMCP来提供这种支持,我们只要用一个终端仿真软件如:xmanager就可以实现,但 ...

  4. docker 安装 mxnet

    1.根据自己的需求安装mxnet:https://hub.docker.com/u/mxnet 2.拉取镜像: nvidia-docker pull mxnet/python:1.5.0_gpu_cu ...

  5. PhpStorm中如何使用database工具,详细操作方法

    1.简介:   PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速导航以及即时错误检查等功能大大提高了编码效率.它以其独特的开发便利性,短时间内赢得了大量PHPer的青睐. ...

  6. 第四章 生命周期函数--35 vue-resource发起get、post、jsonp请求

    vue-resource 官网 https://github.com/pagekit/vue-resource <!DOCTYPE html> <html lang="en ...

  7. HDU - 6396 Swordsman (单调性+贪心)

    题意:有n个怪物和k种属性,当且仅当你的每种属性都大于等于怪物的属性才可以击杀它,且击杀怪物可以提升你一定的属性值.求可击杀怪物的最大数量以最终的属性值. 这不就是银行家算法里的安全性检验么? 本题的 ...

  8. Codeforces Round #608 (Div. 2) E. Common Number

    链接: https://codeforces.com/contest/1271/problem/E 题意: At first, let's define function f(x) as follow ...

  9. 【转】linux中fork()函数详解

    原文链接:http://blog.csdn.net/jason314/article/details/5640969#comments 总结:面宝P268 fork()的意思是进程从这里开始分叉,分成 ...

  10. 处理离散型特征和连续型特征共存的情况 归一化 论述了对离散特征进行one-hot编码的意义

    转发:https://blog.csdn.net/lujiandong1/article/details/49448051 处理离散型特征和连续型特征并存的情况,如何做归一化.参考博客进行了总结:ht ...