1继承语法

class Base {
public:
void print() {
cout << "Base" << endl;
}
}; class Sun : public Base { }; int main() {
Sun s;
s.print();
}

2继承访问权限

子类继承父类时,会根据继承的三种方式改变子类继承成员的访问权限

3.继承模型

父类的所有成员变量和函数都会被子类继承,但会根据权限不同有的不能被调用

查看方式:

(1)打开开发者命令提示符

从windows开始中打开

(2)跳转到文件路径

(3)cl /d1 reportSingleClassLayout类名 文件名

cl /d1 reportSingleClassLayoutSun main.cpp

注意: c后面时英文字母L,d后面是数字one

class Base {
public:
int a;
void print() {
cout << "Base" << endl;
}
}; class Sun : public Base {
int b;
}

可以看到类内的成员被继承了下来

4.继承中构造和析构顺序

class Base {
public:
Base() {
cout << "父类构造" << endl;
}
~Base() {
cout << "父类析构" << endl;
}
}; class Sun : public Base {
public:
Sun() {
cout << "子类构造" << endl;
}
~Sun() {
cout << "子类析构" << endl;
}
}; int main() {
{
Sun s;
}
}

生命周期符合栈的方式

5.父类和子类的调用

子类如果想要调用父类的成员变量或成员函数需要加作用域

class Base {
public:
void print() {
cout<<"父类"<<endl;
}
}; class Sun : public Base {
public:
void print() {
cout << "子类" << endl;
}
}; int main() {
{
Sun s;
s.print();
s.Base::print();//方法子类对象父类需要加作用域
}
}

静态的规则也相同

5.多继承

class Base1 {
public:
void print() {
cout<<"父类1"<<endl;
}
}; class Base2 {
public:
void print() {
cout << "父类2" << endl;
}
}; class Sun : public Base1, public Base2{
public:
void print() {
cout << "子类" << endl;
}
};

小心不同父类出现同名的情况

(12)C++ 继承的更多相关文章

  1. 玩转JavaScript OOP[4]——实现继承的12种套路

    概述 在之前的文章中,我们借助构造函数实现了"类",然后结合原型对象实现了"继承",并了解了JavaScript中原型链的概念. 理解这些内容,有助于我们更深入 ...

  2. javascript的几种继承

    1.原型链继承:构造函数.原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针.确认原型和实例之间的关系用instanceof. ...

  3. c++中的类(class)-----笔记(类继承)

    1,派生类继承了基类的所有成员函数和数据成员(构造函数.析构函数和操作符重载函数外). 2,当不指明继承方式时,默认为私有继承. 3,基类的私有成员仅在基类中可见,在派生类中是不可见的.基类的私有成员 ...

  4. es6+最佳入门实践(12)

    12.class基础用法和继承 12.1.class基础语法 在es5中,面向对象我们通常写成这样 function Person(name,age) { this.name = name; this ...

  5. C++基础 (6) 第六天 继承 虚函数 虚继承 多态 虚函数

    继承是一种耦合度很强的关系 和父类代码很多都重复的 2 继承的概念 3 继承的概念和推演 语法: class 派生类:访问修饰符 基类 代码: … … 4 继承方式与访问控制权限 相对的说法: 爹派生 ...

  6. sizeof运算符、虚函数、虚继承考点(待修改)

    参考: http://blog.csdn.net/wangyangkobe/article/details/5951248 下面的文章解释有错误,不要看.......... 记住几句话: 编译器为每个 ...

  7. C++ //继承中的对象模型 //利用开发人员命令提示工具查看对象模型 //父类中所有非静态成员属性都会被 子类继承下去 //父类中私有成员属性 是被编译器给隐藏了 因此是访问不到 但是确实被继承下去了

    1 //继承方式 2 //语法:class 子类 :继承方式 父类 3 //继承方式 三种: 4 //1.公共继承 5 //2.保护继承 6 //3.私有继承 7 8 /* 9 #include &l ...

  8. 【freertos】011-信号量、互斥量及优先级继承机制源码分析

    目录 前言 11.1 任务同步 11.2 信号量概念 11.3 二值信号量 11.3.1 二值信号量概念 11.3.2 优先级翻转 11.3.3 二值信号量运作机制 11.4 计数信号量 11.4.1 ...

  9. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

随机推荐

  1. Linux操作系统(一)_常用命令

    1.系统工作命令 date  显示/设置系统时间或日期 date:显示时间 date -s “20190319 11:35:56”:设置时间 clock  显示设置硬件时钟 clock -s:以硬件时 ...

  2. <读书笔记>《锋利的jQuery》

    2016年4月3日 第4章 jq中的事件和动画 4.1 jq中的事件 (1)window.onload.$(documet).ready()的区别: 1.执行时机:window.onload需要整个页 ...

  3. HTML的head头和标题

    HTML中Head头 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  4. http常见7种请求

    抛砖引玉,聊下概念性的东西先: HTTP协议 (Hyper Text Transfer Protocol) HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件.图像.结果等,即是一个客 ...

  5. Embedding和Word2Vec实战

    在之前的文章中谈到了文本向量化的一些基本原理和概念,本文将介绍Word2Vec的代码实现 https://www.cnblogs.com/dogecheng/p/11470196.html#Word2 ...

  6. C#设计模式:观察者模式(Observer Pattern)

    一,什么是观察者模式(Observer Pattern)? 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern).比如,当一个对象被修改时,则会自动通知它的依赖对象 二,代码 ...

  7. 常用Message Queue对比

    目前业界有很多MQ产品,我们作如下对比: RabbitMQ 是使用Erlang编写的一个开源的消息队列,本身支持很多的协议:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它变的非常重量 ...

  8. sub

    Popen.communicate(input=None)¶Interact with process: Send data to stdin. Read data from stdout and s ...

  9. getopts举例

  10. Linux 定时任务 Crontab 命令详解

    linux 系统则是由 cron (crond) 这个系统服务来控制的.Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的.另 外, 由于使用者自己也可以设置计划任务,所以, ...