(12)C++ 继承
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++ 继承的更多相关文章
- 玩转JavaScript OOP[4]——实现继承的12种套路
概述 在之前的文章中,我们借助构造函数实现了"类",然后结合原型对象实现了"继承",并了解了JavaScript中原型链的概念. 理解这些内容,有助于我们更深入 ...
- javascript的几种继承
1.原型链继承:构造函数.原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针.确认原型和实例之间的关系用instanceof. ...
- c++中的类(class)-----笔记(类继承)
1,派生类继承了基类的所有成员函数和数据成员(构造函数.析构函数和操作符重载函数外). 2,当不指明继承方式时,默认为私有继承. 3,基类的私有成员仅在基类中可见,在派生类中是不可见的.基类的私有成员 ...
- es6+最佳入门实践(12)
12.class基础用法和继承 12.1.class基础语法 在es5中,面向对象我们通常写成这样 function Person(name,age) { this.name = name; this ...
- C++基础 (6) 第六天 继承 虚函数 虚继承 多态 虚函数
继承是一种耦合度很强的关系 和父类代码很多都重复的 2 继承的概念 3 继承的概念和推演 语法: class 派生类:访问修饰符 基类 代码: … … 4 继承方式与访问控制权限 相对的说法: 爹派生 ...
- sizeof运算符、虚函数、虚继承考点(待修改)
参考: http://blog.csdn.net/wangyangkobe/article/details/5951248 下面的文章解释有错误,不要看.......... 记住几句话: 编译器为每个 ...
- C++ //继承中的对象模型 //利用开发人员命令提示工具查看对象模型 //父类中所有非静态成员属性都会被 子类继承下去 //父类中私有成员属性 是被编译器给隐藏了 因此是访问不到 但是确实被继承下去了
1 //继承方式 2 //语法:class 子类 :继承方式 父类 3 //继承方式 三种: 4 //1.公共继承 5 //2.保护继承 6 //3.私有继承 7 8 /* 9 #include &l ...
- 【freertos】011-信号量、互斥量及优先级继承机制源码分析
目录 前言 11.1 任务同步 11.2 信号量概念 11.3 二值信号量 11.3.1 二值信号量概念 11.3.2 优先级翻转 11.3.3 二值信号量运作机制 11.4 计数信号量 11.4.1 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
随机推荐
- PHP运行出现Notice
问题: Notice:Notice是PHP 的提示而非报错,PHP本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示.在网站正式开始运行时,会把提示关了的. 关闭PHP提示的方法: 搜索ph ...
- Windows 08R2_AD图文详解
目录 目录 软件环境 Active Directory域服务 AD的应用 创建ADDS域 使用Windows窗口来创建ADDS域控制器 使用Powershell来创建ADDS域控制器 检查ADDC域控 ...
- Iterator,foreach遍历小计
此博客对同一操作对比两种遍历方式,以个人忘记时快速捡起为目的. 数据表: 三个List: List<Menu> menuList=menuService.getAllMenus(query ...
- 学会如何使用,pycharm,和gitlanb
好好看,好好学.这才是正确的. 1 在pycharm 里面选择checkout as 切换分支 2 选择自己提交的,然后选择审核人.是强哥
- excel cannot access the file there are several possible reasons
original link Microsoft Office Excel cannot access the file ‘c:\file.xlsx’. There are several possib ...
- luoguP1080 国王游戏 题解(NOIP2012)(贪心+高精)
luoguP1080 国王游戏 题目 #include<iostream> #include<cstdlib> #include<cstdio> #include& ...
- Linux下MySQL Error 1130 不能远程访问(转)
Linux下MySQL Error 1130 不能远程访问 内容简介:远程连接MySQL时总是报出erro 2003: Can't connect to MySQL server on '211.87 ...
- 推荐系统之隐语义模型LFM
LFM(latent factor model)隐语义模型,这也是在推荐系统中应用相当普遍的一种模型.那这种模型跟ItemCF或UserCF的不同在于: 对于UserCF,我们可以先计算和目标用户兴趣 ...
- go递归遍历文件目录
package main import ( "fmt" "io/ioutil" "log" ) //文件目录树形结构节点 type dirT ...
- JS事件委托(事件代理,dom2级事件)
一.前言 说实话,真问我什么是事件委托,我肯定gg,还好查了一下,原来就是我之前练习过的DOM2级事件的应用. 二.什么是事件委托? 事件委托就是当事件触发时,把要做的事委托给父元素(或父元素的父元素 ...