C++的new能不能结果直接交给引用

C++的new能不能结果直接付给引用
如下面的代码, new A(1)可以直接赋值给指针a1,但是赋给引用a2的时候需要先解引用一下

我想,new能不能更智能一些,让编译器根据变量的类型决定是直接返回指针还是返回指针的解引用,这样就可以直接
A & a2 =  new A(1);
虽然只是一个很小的改动,但是却可以让引用的更容易使用,减少指针的使用,从而提高C++的易用性

而且这个更改只是语法上的一个小trick,类似于C++11中的auto,并不会引入复杂度或难以排查的错误。。。

各位大侠以为这样做有意义吗??


#include <cstdio>

class A
{
public:
A(int a){_A = a;}

int _A;
};

int main()
{
A * a1 = new A(1);

A & a2 = * new A(1); //等价于A * x = new A(1); A & a2 = *x;

printf("a1:%d\n",a1->_A);
printf("a2:%d\n",a2._A);
}

------解决方案--------------------
不能这样做,内存泄漏
------解决方案--------------------
引用:
Quote: 引用:

不能这样做,内存泄漏


我是希望C++能够像C#、JAVA那样尽量使用引用而少使用指针,至于内存泄漏我确实没有想到,是不是只能使用GC才能解决这个问题啊???

那这样的话,引用的作用就大打折扣了吧,只有作为函数形参的时候比较有意义。。

优先考虑智能指针