1

我的班级结构如下:

Test_Camera.h:

class Test_Camera : public Camera_Interface {
public:
   Test_Camera (string const& aName);
   ...

Test_Camera.cpp

Test_Camera::Test_Camera(string const& aName) : Camera_Interface(0, 0, 0, 0), name(aName)

在我实例化Test_Camera对象的代码中,我有 2 个场景。第一个编译得很好,但第二个没有,我不知道为什么。

Test_Camera cam ("cam"); // This compiles

Test_Camera& cam ("cam"); // This does not compile

当我尝试编译第二个示例时,出现错误:

错误:从“const char *”类型的临时对象对“Test_Camera&”类型的非常量引用无效初始化

我也试过:

string name = "cam";
Test_Camera& cam (name); //does not compile
4

1 回答 1

6

引用应引用现有对象:

Test_Camera cam ("cam");
Test_Camera &cam_ref = cam;
于 2013-04-17T13:56:14.417 回答