重複の可能性:
最も厄介な解析: A が a(()); でない理由 仕事?
file1.h には 2 つのクラスがあります。
class ZoneRecord {
public:
//a lof of stuff here
};
class RegisterRecord {
public:
RegisterRecord(ZoneRecord rec); //this function register object rec in a fabric
};
そして file2.cpp は次のとおりです。
#include "file1.h"
class MockZoneRecord: public ZoneRecord {
public:
MockZoneRecord(): ZoneRecord() {}
};
RegisterRecord mockrecord_register(MockZoneRecord());
このコードは、1 つの点を除いて完全にコンパイルされます。mockrecord_register は関数の宣言であると言っています。しかし、実際には、mockrecord_register という名前の RegisterRecord 型のグローバル オブジェクトを作成したかったのです。これが関数プロトタイプではなくオブジェクトであることをコンパイラに明示的に伝える方法は?