2
私はSocketTest
から派生したクラスUDPSocketTest
を持っています。 SocketTest
には、そのコンストラクタにパラメータが必要です。そのためgtest
フレームワークを使用してのC++でこのパターンを実装する方法は?
、UDPSocketTest
は、パラメータなしのコンストラクタを持つ必要がある、だから私はUDPSocketTest
のコンストラクタで、それを作成したい、とSocketTest
に渡すと思います。
問題は、基本クラスがC++標準でメンバーよりも前に初期化されることです。
class UDPSocketTest : public SocketTest
{
public:
UDPSocketTest()
socketPool_(new SocketPool()), <<---- Line 1
SocketTest(socketPool_) { <<---- Line 2
}
~UDPSocketTest() {
}
private:
SocketPool* socketPool_;
};
しかし、行1の前に行2を呼び出す必要があります。これを実装する方法はありますか。
class UDPSocketTest : public SocketTest
{
public:
UDPSocketTest() : UDPSocketTest(new SocketPool()) {}
// You should already have this constructor written:
UDPSocketTest(SockerPool *p)
SocketTest(p),
socketPool_(p)
{
}
~UDPSocketTest() {
}
private:
SocketPool* socketPool_;
};
最小抵抗のパスは次のとおり