可能重复:
Most vexing parse: why doesn't A a(()); work?堆栈变量或函数声明
我在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类型的全局对象。如何明确告诉编译器这不是一个函数原型,而是一个对象?
只是出于好玩,做u得到这样的警告()? – 2012-08-01 09:40:02
将参数放在'()'中:'mockrecord_register(((MockZoneRecord()));' – hmjd 2012-08-01 09:40:07