c++ - 对类型的临时类型的非常量引用的初始化无效

标签 c++

我的类结构如下:

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/

相关文章:

c++ - 如何制作一个深const指针

java - 如果不是在本地方法中创建,什么时候会清除本地引用?

c++ - 是否有可能分割内存块或在中间访问它

c++内联函数在GCC内联汇编中包装单个vmovups

c++ - 工具栏中带有 QAction 的 Qt QActionGroup

c++ - 避免依赖关系使我的VS解决方案中的项目数量激增

c++ - 如何将 boost 字节数组转换为结构体

c++ - 什么是微不足道的功能?

c++ - 具有指针数组 C++ 的类的析构函数

c++ - C++中的虚函数和纯虚函数在基类中都没有定义时有什么区别?