C++相談室 part16
■ このスレッドは過去ログ倉庫に格納されています
0591デフォルトの名無しさん
NGNGconst_castそのものは*b1と*b2のconst性を取り除くものだろうが、
delete時にはconst性を取り除く必要はないので冗長だね。
Xが仮想デストラクタを持っていないのは、すぐにでも問題になりそうだ。
class B{
public:
virtual void f() = 0;
};
class D : public B{
public:
void f() { }
};
class X : public B{
const B *b1, *b2;
public:
X(const B* c1, const B* c2):b1(c1), b2(c2) {}
~X(){
delete const_cast<B*>(b1);
delete const_cast<B*>(b2);
std::cout << "~X()" << std::endl;
}
void f() {}
};
■ このスレッドは過去ログ倉庫に格納されています