我可以在引用成员上声明C ++吗?

时间:2012-10-04 12:39:06

标签: c++

在h文件中我声明:

static IDataSynchronization& sync_data_;

但是在cpp中,我有sync_data_的编译错误:

IDataSynchronization& MasterSlaveSynchronize::sync_data_;

错误是:

MasterSlaveSynchronize::sync_data_ declared as reference but not initialized

我可以,但不想声明是指针,我想知道这里有什么问题,是否有办法绕过这个。

我无法初始化声明,因为这是一种将在setup(无构造函数,静态设置)传递的回调。

谢谢

2 个答案:

答案 0 :(得分:2)

你可以,但你需要初始化它:

IDataSynchronization& MasterSlaveSynchronize::sync_data_ = something;

答案 1 :(得分:1)

必须在声明中初始化引用。如果从你的评论看起来你不能这样做,那么你将不得不诉诸指针。那里没有第三种选择。