无法创建对类的新实例的引用
Unable to create a reference to a new instance of a class
我是C++新手,正在尝试学习指针和引用的概念。我尝试使用以下语句创建引用和指向类的新实例的指针
Animal *rA = new Animal();//works fine
Animal &rA = new Animal();//compiler prints error: non-const lvalue reference
//to type 'Animal' cannot bind to a temporary of type 'Animal *'
由于我的知识有限,我无法理解编译器打印出的错误消息。有人可以向我解释一下它的含义吗?
new
返回一个指针。引用必须使用实际对象(而不是指向该对象的指针)进行初始化。
Animal &rA = * new Animal;
..会起作用,但在你知道自己在做什么之前,你通常不应该使用 new
.
Animal A;
Animal &rA = A;
。工作而不会陷入你应该远离的肮脏。
相关文章:
- 对显式实例化的模板函数的未定义引用
- 重载运算符*以获取对另一个类的实例的引用
- 为什么我不能引用指向实例化对象的函数的指针?
- <Base> <Derived> 具有相同原始指针共享引用的 shared_ptr 和 shared_ptr 实例是否计数?
- 返回引用实例和非引用实例(return mystr & vs mystr)之间的区别是什么?
- 请参阅在 Visual Studio 2019 中捕获 std::exception 时对函数模板实例化消息的引用
- 将元组和整型实例合并到引用元组中
- C++ 为什么在定义的编译和链接之前引用外部实例的程序
- 是否允许使用初始值设定项列表将const数组引用实例化为构造函数参数
- 引用的静态强制转换强制模板实例化,其中不完整的类型很好
- 为什么不能在实例化对基类的引用的同时实例化指向派生类的指针?
- 非类型引用参数可以在运行时修改,这是否意味着模板可以在运行时实例化?
- 超出返回引用的单一实例生存期
- 反向函数不反转类实例化的引用字符串
- 通过引用将私有类实例传递到另一个类 C++ 的"get"函数中
- 多个实例保存对unique_ptr的引用
- 类模板实例化和通用引用
- 对从静态实例引用的类模板的静态成员的未定义引用
- 如何正确格式化类实例引用
- 如何在类构造函数中存储实例引用