【初心者歓迎】C/C++室 Ver.17【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0224デフォルトの名無しさん
2005/05/17(火) 22:51:44共に通常のclassとして宣言し、interfaceのメソッドとabstractメソッドをC++ではvirtualメンバ関数にすればよい。
virtualでないメンバ関数は、派生クラスのオブジェクトを基底クラスのポインタ・参照から使うと、基底クラスのメンバ関数が呼ばれる。
#include <iostream>
using namespace std;
class A {
public:
f() {cout << "A::f()" << endl;}
virtual g() {cout << "A::g()" << endl;}
};
class B : public A{
public:
f() {cout << "B::f()" << endl;}
virtual g() {cout << "A::g()" << endl;}
};
int main() {
A *p = new B;
p->f(); //A::fが呼ばれる。
p->g(); //B::fが呼ばれる。
delete p;
}
■ このスレッドは過去ログ倉庫に格納されています