【初心者歓迎】C/C++室 Ver.53【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0725TOM
2008/05/09(金) 17:32:52class Interface { public: virtual int getValue() const = 0;};
class Print { public: void out(const Interface& interface) { cout << "## " << interface.getValue() << endl; }};
// class A
class A : public Interface { public: virtual int getValue() const { return 0; }};
// class B
class B : public A {
private: Print p;
public:
virtual int getValue() const { return 1; }
void out() {
// オブジェクトがコピーされて、class Aの値が表示される
p.out((A)*this);
// class AのgetValueが呼び出される
p.out((A&)*this);
}
};
オブジェクトをコピーすることなく、クラスAの値を表示できませんか?
■ このスレッドは過去ログ倉庫に格納されています