C++ 10 翁恺> 继承
说明:学生类是人类的扩充,学生类里有普通人类里没有的属性 ,加了点属于学生自有的东西。
当你继承一个父类的时候,父类里所有的东西都有了。
例一:继承时构造函数调用情况
#include<iostream>using namespace std;class A {
public:A() :i(0) { cout << "A::A()" << endl; }~A() { cout << "A::~A()" << endl; }void print() { cout << "A::f()" << endl; }void set(int ii) { i = ii; }
private:int i;
};class B :public A {};int main()
{B b;b.set(10);b.print();return 0;
}
输出:
例二:调用父类public函数
#include<iostream>using namespace std;class A {
public:A() :i(0) { cout << "A::A()" << endl; }~A() { cout << "A::~A()" << endl; }void print() { cout << "A::f()" << i << endl; }void set(int ii) { i = ii; }
private:int i;
};class B :public A {
public:void f() { set(20); print(); } //调用父类public函数
};int main()
{B b;b.set(10);b.print();b.f();return 0;
}
输出:
例三:析构函数输出顺序
#include<iostream>using namespace std;class A {
public:A(int ii) :i(0) { cout << "A::A(int ii)" << endl; } //要求有显示的不带参数的构造函数初始化 i~A() { cout << "A::~A()" << endl; }void print() { cout << "A::f()" << i << endl; }void set(int ii) { i = ii; }
protected:void use() { cout << "A::use()" << i + 1 << endl; }
private:int i;
};class B :public A {
public:B():A(15){ cout << "B::A()" << endl; };~B() { cout << "B::~B()" << endl; }void f() {set(20);// i = 30; //父类的private子类不能用print(); use();}
};int main()
{B b;b.set(10);b.print();b.f();//b.use(); //父类中的protected,对象不能用return 0;
}
输出:
例四:隐藏同名函数
#include<iostream>using namespace std;class A {
public:A(int ii) :i(0) { cout << "A::A(int ii)" << endl; } //要求有显示的不带参数的构造函数初始化 i~A() { cout << "A::~A()" << endl; }void print() { cout << "A::print()" << i << endl; }void print(int i) { cout << "A:print(int i):i:" << i; print(); }void set(int ii) { i = ii; }
protected:void use() { cout << "A::use()" << i + 1 << endl; }
private:int i;
};class B :public A {
public:B():A(15){ cout << "B::A()" << endl; };~B() { cout << "B::~B()" << endl; }void print() { cout << "B::print()" << endl; }void f() {set(20);// i = 30; //父类的private子类不能用print(); use();}
};int main()
{B b;b.set(10);b.print();b.f();//b.use(); //父类中的protected,对象不能用//b.print(200);//B中的print()隐藏了A中print()和print(int),也就是隐藏了所有同名的函数,不管参数是什么都隐藏b.A::print(100);return 0;
}
C++ 10 翁恺> 继承相关推荐
- c++基础入门(根据浙大翁恺老师视频整理)
把以前的笔记搬上来一下 根据浙大翁恺老师视频整理 https://www.bilibili.com/video/BV1yQ4y1A7ts?p=2 01第一个c++程序 02什么是对象 通过操作访问数据 ...
- 面向对象程序设计-C++(视频) 浙江大学 翁恺老师
网易云课堂视频转存:面向对象程序设计-C++(视频) 浙江大学 翁恺老师 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012183487/art ...
- 翁恺老师视频内容 (C++)
内容来自翁恺老师部分视频 基本语法 类的默认构造函数(default constructor) 不带参数的构造函数就是默认构造函数,包括自己定义的和编译器自动给的auto #include <i ...
- 翁恺老师 | 城堡游戏解读
这是我自己对城堡游戏的解读,解读后自己才不会囫囵吞枣地假装自己懂了. 城堡游戏是一个根据目前所处的房间与方向,来指明下一步所处位置与出口的小游戏. 翁恺老师讲课的精妙之处在于,从最简单也最缺乏设计感的 ...
- C语言程序设计笔记(浙大翁恺版) 第九周:指针
按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...
- 翁恺c语言程序设计入门期末,程序设计入门-C语言 翁恺.doc
第 PAGE \* MERGEFORMAT 39 页 共 NUMPAGES \* MERGEFORMAT 39 页 程序设计入门-C语言 浙大 翁恺循环类型编程源代码1.#include int ma ...
- C语言程序设计笔记(浙大翁恺版) 第二周:计算
按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...
- 浙大翁恺pat练习题_PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)...
2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和.差.积 ...
- C语言程序设计笔记(浙大翁恺版) 第三周:判断
按照中国大学MOOC上浙江大学翁恺老师主讲的版本所作,B站上也有资源.原课程链接如下: https://www.icourse163.org/course/ZJU-9001 由于是大三抽空回头整理的, ...
最新文章
- linux+postfix+extmail+dovecot搭建邮件服务器
- 皮一皮:现在的妹子这么好骗?还是在下脸皮太薄了...
- Linux中top命令的用法详解
- python 颤音_自成一派,这个作曲大师确实名副其实!
- java 管道设计_使用管道流实现Java 8阶段构建器
- matlab之unwrap函数
- C#中LINQ技术的简单小例
- CodeForces - 594A Warrior and Archer(思维+博弈)
- 新闻数据采集php,PHP新闻采集在线源码
- 无苹果,怎么编写内置 iOS 应用?
- 在Linux中创建静态库和动态库范例 (hello.c)
- Python 爬虫 PhantomJs 获取JS动态数据
- 实验室一块GPU都没有?这个云平台直接送3090、A100免费无门槛代金券!
- 常用数据接口汇总,百度、谷歌、头条、微博指数,高校名单,疫情数据...
- 思科路由器 密码设置和恢复
- Linux开发板实现 NTP时间获取
- python商品销售情况数据分析_用python分析小红书销售情况
- java手机解锁_Android手机屏幕敲击解锁功能代码
- verilog 实现32位加法器(超前进位)
- 安凯微电子与阿里云IoT开展全面合作 共同打造视频芯云一体化解决方案