次のコード フラグメントを考えると、関数呼び出しの違いは何ですか? 関数隠蔽とは?関数のオーバーライドとは それらは関数のオーバーロードとどのように関係していますか? 2つの違いは何ですか?これらについての適切な説明を 1 か所で見つけることができなかったので、情報を統合できるようにここで質問しています。
class Parent {
public:
void doA() { cout << "doA in Parent" << endl; }
virtual void doB() { cout << "doB in Parent" << endl; }
};
class Child : public Parent {
public:
void doA() { cout << "doA in Child" << endl; }
void doB() { cout << "doB in Child" << endl; }
};
Parent* p1 = new Parent();
Parent* p2 = new Child();
Child* cp = new Child();
void testStuff() {
p1->doA();
p2->doA();
cp->doA();
p1->doB();
p2->doB();
cp->doB();
}