C++ Notes-Inheritance-03
程序员文章站
2022-05-18 14:49:33
类型转换(基类、派生类)
1、公有派生类对象可以被当作基类的对象使用,反之则不可。
(1)派生类的对象可以隐含转换为基类对象
(2)派生类的对象可以初始化基类的引用
(3)派生类的指针可以隐含转换为...
类型转换(基类、派生类)
1、公有派生类对象可以被当作基类的对象使用,反之则不可。
(1)派生类的对象可以隐含转换为基类对象
(2)派生类的对象可以初始化基类的引用
(3)派生类的指针可以隐含转换为基类的指针
2、通过基类对象名、指针只能使用从基类继承的成员
3、code
#include using namespace std; class base1 { //基类base1定义 public: void display() const { cout << "base1::display()" << endl; } }; class base2 : public base1 { //公有派生类base2定义 public: void display() const { cout << "base2::display()" << endl; } }; class derived : public base2 { //公有派生类derived定义 public: void display() const { cout << "derived::display()" << endl; } }; void fun(base1 *ptr) { //参数为指向基类对象的指针 ptr->display(); //"对象指针->成员名" } int main() { //主函数 base1 base1; //声明base1类对象 base2 base2; //声明base2类对象 derived derived; //声明derived类对象 fun(&base1); //用base1对象的指针调用fun函数 fun(&base2); //用base2对象的指针调用fun函数 fun(&derived); //用derived对象的指针调用fun函数 return 0; }