派生した仮想関数を呼び出すために基本クラスオブジェクトを参照する必要があるのはなぜですか? コピーによってOBJ3派生した仮想関数を呼び出すために、基本クラスオブジェクトを参照する必要があるのはなぜですか?
#include<iostream>
using namespace std;
class A {
public:
virtual void print() { cout << "Hello 1" << endl; }
};
class B : public A {
public:
int x;
void print() { cout << "Hello " << x << endl; }
};
void main(){
B obj1;
A &obj2 = obj1;
A obj3 = obj1; // Why it is different from obj2
obj1.x = 2;
obj1.print();
obj2.print();
obj3.print(); // ?
}
多型は参照とポインタに対してのみ機能するためです。 – Mahesh
「XはYを必要とするのはなぜですか?」 「YはXの要件ですから」非常に有用なコメントではありません –