0

2つの同様のコンストラクターを持つクラスがあります...

class CX
{
public:
    CX(HEADER header,
              __int64    i64Id); 

    CX(HEADER  header,
              const char* pszName);
    // other methods...
};

null ポインターを使用して 2 番目のコンストラクターを呼び出したい。

CX *data1 = new CX(&header, NULL); 
//it is ambiguous call to overloaded function

CX *data2 = new CX(&header, (const char*)NULL); 
// is correct, but against our coding standards...

CX *data3 = new CX(&header, static_cast<const char*>(NULL));
// is correct, but agains our coding standards...

const char* pszName = NULL;
CX *data4 = new CX(&header, pszName);
// this is correct but waste of stack.

コンストラクターを選択するより良い方法はありますか?
(この場合はnullptrが解決策になりますが、VC6でコンパイルできるはずなので不可能です)

4

1 に答える 1