C++ Notes-Inheritance-03
タイプ変換(ベースクラス、派生クラス)
1、共通派生クラスオブジェクトはベースクラスのオブジェクトとして使用でき、逆に使用できない.
(1)派生クラスのオブジェクトをベースクラスオブジェクトに暗黙的に変換できる
(2)派生クラスのオブジェクトがベースクラスの参照を初期化できる
(3)派生クラスのポインタはベースクラスに変換されたポインタを暗黙的に含むことができる.
2、ベースクラスオブジェクト名、ポインタではベースクラスから継承したメンバーのみ使用できます
3、Code
1、共通派生クラスオブジェクトはベースクラスのオブジェクトとして使用でき、逆に使用できない.
(1)派生クラスのオブジェクトをベースクラスオブジェクトに暗黙的に変換できる
(2)派生クラスのオブジェクトがベースクラスの参照を初期化できる
(3)派生クラスのポインタはベースクラスに変換されたポインタを暗黙的に含むことができる.
2、ベースクラスオブジェクト名、ポインタではベースクラスから継承したメンバーのみ使用できます
3、Code
#include <iostream>
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;
}