我是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 *'
由于我的知识有限,我无法理解编译器打印出的错误消息。请有人请向我解释这意味着什么?
答案 0 :(得分:3)
new
返回一个指针。必须使用实际对象初始化引用,而不是指向对象的指针。
Animal &rA = * new Animal;
..会起作用,但在你知道自己在做什么之前,通常不应该使用new
。
Animal A;
Animal &rA = A;
......工作没有肮脏,你应该远离。