天天看點

017--C++養成之路(多繼承)

筆記:多繼承,子類隐式轉換為基類(皆然性)
#include<iostream>
using namespace std;
class A{
public:
  A(){
    cout << "A構造" << endl;
  }
  void call(){
    cout << "打電話··" << endl;
  }
};
class B{
public:
  B(){
    cout << "B構造" << endl;
  }
  void take(){
    cout << "照相···" << endl;
  }
};
class C{
public:
  C(){
    cout << "C構造" << endl;
  }
  void play(){
    cout << "播放··" << endl;
  }
};
class iphoneX:public A,public B,public C{
public:
  iphoneX(){
    cout << "iphoneX構造" << endl;
  }
};
int main(){
  iphoneX ip;
  ip.call();
  ip.play();
  ip.take();
  cout << "---------------------" << endl;
  A* p1 = &ip;//子類對象都看作基類對象,隐式轉換
  B* p2 = &ip;
  C* p3 = &ip;//皆然性,将子類對象隐式轉換為基類對象
  cout <<&ip<<"\t"<< p1 << "\t" << p2 << "\t" << p3 << endl;
  getchar();
  return 0;
}