09/03/09 20:49:52
>>318
explicitは付けていません。変換コンストラクタについてもっと勉強が必要でしょうか;
試しに簡易コードで再現してみました。皆さんの環境ではコンパイル通りますでしょうか?
class A { // 基底クラス
public:
DWORD_PTR a; // データメンバ
operator DWORD_PTR() { return a; }
A(DWORD_PTR x = 0) : a(x) {} // コンストラクタ
A getData() { return A(a); } // 自クラスでキャスト
};
class B : public A { // 派生クラス
public:
B(DWORD_PTR x = 0) : A(x) {} // コンストラクタ
B& operator=(DWORD_PTR x) { a = x; return *this; }
};
A aaa;
B bbb = aaa.getData(); // NG
bbb = aaa.getData(); // OK
それともこの再現自体が間違ってるのでしょうか・・・?