无法创建对类的新实例的引用

Unable to create a reference to a new instance of a class

本文关键字:实例 引用 新实例 创建      更新时间:2023-10-16

我是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;

。工作而不会陷入你应该远离的肮脏。