zoukankan      html  css  js  c++  java
  • 父类和子类(指针,对象,引用 ,盲点)


    #include<iostream> using namespace std; class Father { public: Father() { cout << "我是父类构造函数"; } ~Father() { cout << "我是父类析构函数 "; } void printF() { cout << "我是父类的函数"; } public: int f; protected: }; class Child: public Father { public: Child() { cout << "我是子类构造函数"; } ~Child() { cout << "我是子类析构函数 "; } void printC() { cout << "我是子类的函数"; } public: int c; protected: }; int main() { Father f1; //调用父类的构造函数 Child c1;//先调用 父类的构造函数 再调用子类的构造函数。 cout << endl; cout << "f1.printF() :"; f1.printF(); //父类的对象调用父类的函数,显示父类的函数 cout << endl << "c1.printC() ::"; c1.printC();//子类的对象调用子类的函数 ,显示子类的函数 cout << endl << "c1.printF() ::"; c1.printF();//子类的对象调用父类的函数 ,显示父类函数。 f1.f = c1.f; cout <<" 我是漂亮的分割线----------------------"<< endl; Father *f2; Child c2; f2 = &c2; f2->printF(); //显示调用父类的函数,但是这如果是虚函数则显示是调用的是子类的函数 system("pause"); }

    子类对象可以当作父类对象使用

             子类对象可以直接赋值给父类对象

             子类对象可以直接初始化父类对象

          子类对象可以使用父类的成员和函数。

             父类指针可以直接指向子类对象(这里仅仅指的是子类继承的父类的对象)

             父类引用可以直接引用子类对象(这里仅仅指的是子类继承的父类的对象)

    所以上面两句和线面这一句并不矛盾。

    子类对象可以用父类的所有东西,只是对错而已,而父类对象不能用子类的任何东西。

    而子类的指针和引用就不可以指向父类对象

  • 相关阅读:
    word设置的密码忘了怎么办?
    Navicat Report Viewer 设置 HTTP 的方法
    如何处理Navicat Report Viewer 报表
    excel密码忘记了怎么办
    Beyond Compare文本比较搜索功能详解
    Popular Cows POJ
    Problem B. Harvest of Apples HDU
    网络流模型整理
    The Shortest Statement CodeForces
    Vasya and Multisets CodeForces
  • 原文地址:https://www.cnblogs.com/xiaochige/p/7538099.html
Copyright © 2011-2022 走看看