【发布时间】:2012-07-30 04:29:38
【问题描述】:
我在 file1.h 中有两个类:
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());
这段代码编译得很好,除了一件事。它说 mockrecord_register 是一个函数的声明。但我实际上想创建一个名为 mockrecord_register 的 RegisterRecord 类型的全局对象。如何明确告诉编译器这不是函数原型,而是对象?
【问题讨论】:
-
只是为了好玩,如果你在 main() 中声明了这个对象,你会收到这个警告吗?
-
将参数包装在
():mockrecord_register((MockZoneRecord()));