c++程序设计原理与实践---(3)类的派生和虚函数
来源:互联网 发布:淘宝一元拍卖真的吗 编辑:程序博客网 时间:2024/05/29 02:24
一.派生的几种表示方式
struct Circle:Shape{/*...*/};默认情况下,struct的成员都是公有的,基类中的公有成员也会成为结构体的公有成员,等价于这个表达:
class Circle:public Shape{public:/*..*/};但是这样写是完全不同的:
class Circle:Shape{public:/*...*/};
这样写将使shape成为circle的私有基类,circle将不能访问shape的公有函数。
二.覆盖
当希望覆盖一个虚函数时,必须使用与基类完全相同的名字
struct B{ virtual void f() const {cout<<"B::f";} void g() const { cout<<"B::g";} //not virtual}struct D:B{ void f() const {cout<<"D::f";} //overrides B::f void g() {cout << "D::g";}}struct DD:D{ void g() {cout <<"DD:f";} //doesn't override D::f (not const) void g() const {cout <<"DD:g";}}void call {const B& b}//a D is a kind of B,so call() can accept a D//a DD is a kind of D,so call() can accept a DD{ b.f(); b.g();}int main(){ B b; D d; DD dd; call(b); call(d); call(dd); b.f(); b.g(); d.f(); d.g(); dd.f(); dd.g();}
将得到的结果:
B::f B::g D::f B::g D::f B::g B::f B::g D::f D::g DD::f DD::g
0 0
- c++程序设计原理与实践---(3)类的派生和虚函数
- C++ Pirmer : 第十五章 : 面向对象程序设计之基类和派生的定义、类型转换与继承与虚函数
- [c++]派生类的构造函数和析构函数
- c++---派生类的构造函数和析构函数
- 面向对象的程序设计-学习笔记-23-派生类的构造函数和析构函数
- !!!!!!!!!!!!!!!!C++:派生类中重定义基类的成员函数与虚函数区别在哪里?
- 继承与派生3:派生类的构造函数与析构函数
- 面向对象程序设计之基类,派生类与虚函数
- C++程序设计原理与实践
- 继承与派生:派生类的构造函数
- 继承与派生:派生类的析构函数
- 继承与派生:虚基类及其派生类的构造函数
- 三十九、继承与派生:派生类的构造函数****
- 四十、继承与派生:派生类的析构函数
- 派生类的构造函数和析构函数和多继承中的二义性与虚函数
- 编译原理程序设计实践(五) 语法分析的相关函数
- 读书笔记--C++程序设计(第2版)--11.5派生类的构造函数和析构函数
- 派生和虚函数
- Android Studio常用设置和快捷键
- Java编程思想第四版读书笔记——第二章 一切都是对象
- 第三周项目3—求集合并集
- 杭电2191悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- SQL Sever 的增删改查
- c++程序设计原理与实践---(3)类的派生和虚函数
- 关于Html中Select的操作
- 1.c++中与oc中类和对象创建及访问
- 为什么不要特化函数模版?
- 【备忘】Matlab 作图奇淫技巧
- 剑指offer - 赋值运算符函数
- 邀请用户相关专利
- SpringIoC初始化BeanDefinition解析——从Resource到BeanDefinition
- MAC环境下生成Apple证书教程