C++ 基类 派生类 互相转换 调用关系
2017-03-04 01:04
309 查看
#include<iostream> using namespace std; class A { public: A(int a) : _a(a ) { std::cout << "this is A" << _a << std::endl; } void GetA() { std::cout << "get a" << std::endl; } public: int _a; }; class AA :public A { public: AA(int a, int aa) : _aa(aa), A(a) { std::cout << "this is AA" << _aa << std::endl; } void GetA() { std::cout << "get b" << _aa << std::endl; } void SetA(int a) { _aa = a; } int _aa; }; int main() { A* a = new A(10); AA * aa = new AA(10, 100); /* * 指向基类的派生类对象 GetA() 基类不是虚函数 输出 get a * 如果基类是 虚函数 则 get b * */ A * b = aa; b->GetA(); /* * 指向派生类的基类对象 GetA() 基类不是虚函数 调用 派生类 * 如果基类是 虚函数 则 调用 基类 * */ AA * cc = static_cast<AA*>(a); cc->SetA(50); AA * dd = static_cast<AA*>(a); dd->GetA(); return 0; }
相关文章推荐
- c++派生类转换为基类与public、protected、private继承的关系
- [疑问]C/C++中为什么在类外利用多态基类指向派生类指针可以调用类的私有成员函数?
- C++基类与派生类的转换
- c++ 初学 派生类到基类转换的可访问性
- C++ 派生类到基类转换的可访问性
- C/C++中为什么在类外利用多态基类指向派生类指针可以调用类的私有成员函数?
- C++基类调用派生类的方法
- C++学习笔记_1:派生类与基类关系
- 关于C++中,基类 派生类的关系 重载 覆盖 面对对象开发的必须要理解的非常好
- C++基类与派生类的转换
- C++派生类与基类构造函数调用次序
- C++中基类对象安全转换为派生类对象的方法
- C++派生类与基类的转换
- C++基类与派生类的转换
- C++学习笔记(5)——基类、派生类的构造函数、析构函数的调用顺序
- 派生类到基类的转换(c++学习笔记)
- C++ 运算符重载显示调用与隐式调用的转换关系
- C++ 基类调用派生类非虚函数
- C/C++开发语言系列之7---C++基类与派生类的转换
- C++基类、派生类构造函数调用顺序