我有麻烦具有一定的参考变量的点,第一关断这是我的类C++引用类型必须被初始化
头文件
#pragma once
#include "ImageLoader.h"
#include "FontLoader.h"
class LevelState
{
public:
LevelState()
private:
ImageLoader& _imageLoader;
FontLoader& _fontLoader;
}
类文件
#include "LevelState.h"
LevelState::LevelState()
{
}
现在当我去建立我得到这些错误
Error 2 error C2758: 'LevelState::_fontLoader' : a member of reference type must be initialized
Error 1 error C2758: 'LevelState::_imageLoader' : a member of reference type must be initialized
于是我接着说干就干,更新了我的构造方法来在ImageLoader的和FontLoader像这样
LevelState::LevelState(FontLoader& fontLoader, ImageLoader& imageLoader)
{
_fontLoader = fontLoader;
_imageLoader = imageLoader;
}
但我仍然得到同样的错误如上,什么错误?我知道我可以改变我对指针的引用,只是给它们指定方式,但我更喜欢使用引用,因为它们更安全。
您必须在构造函数初始化列表中初始化成员引用,而不是在构造函数体中。 – 2014-09-28 20:04:29