我的类结构如下:
Test_Camera.h:
class Test_Camera : public Camera_Interface {
public:
Test_Camera (string const& aName);
...
测试相机.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
当我尝试编译第二个示例时出现错误:
error: invalid initialization of non-const reference to type 'Test_Camera&' from a temporary of type 'const char*'
我也试过:
string name = "cam";
Test_Camera& cam (name); //does not compile
最佳答案
引用应该引用一个现有的对象:
Test_Camera cam ("cam");
Test_Camera &cam_ref = cam;
关于c++ - 对类型的临时类型的非常量引用的初始化无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16061992/