仮想印刷関数を使用してスーパー クラスを宣言し、子クラスはスーパー クラスを継承します。子クラスのインスタンスを作成し、2 つの異なる方法でスーパー クラスに割り当てました。
#include <iostream>
using namespace std;
class Super
{
public:
Super(){}
virtual void print()
{
cout << "Super class is printing " << endl;
}
};
class Child: public Super
{
public:
Child(){}
void print()
{
cout << "Child class printing" << endl;
}
};
int main()
{
Child c;
Super s = c;
Super &ss = c;
s.print(); //prints "Super Class is printing
ss.print(); //prints "Child Class is printing
return 0;
}
これら 2 つの印刷呼び出しから同じ出力が得られないのはなぜですか? 参照を追加すると動作がどのように変わりますか?