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

时间:2016-01-13 23:48:41

标签: c++ pointers reference

我是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 *'

由于我的知识有限,我无法理解编译器打印出的错误消息。请有人请向我解释这意味着什么?

1 个答案:

答案 0 :(得分:3)

new返回一个指针。必须使用实际对象初始化引用,而不是指向对象的指针。

Animal &rA = * new Animal;

..会起作用,但在你知道自己在做什么之前,通常不应该使用new

Animal A;
Animal &rA = A;

......工作没有肮脏,你应该远离。