asa*_*007 2 c++ pointers reference
我开始学习C++和指针.但是我在初始化时有点困惑.根据我的理解,如果我有一些类X,以下代码是有效的:
X* pointer = new X();
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,因为我希望你想通过给它一个对象的地址来初始化一个指针,而不是对象本身,如:
X* pointer = &(new X());
Run Code Online (Sandbox Code Playgroud)
C++会自动将前者转换为后者吗?谢谢.
Vla*_*cow 11
Operator new返回创建的对象的地址.它不会返回对象本身.
您也可以使用对创建对象的引用.例如
X &x = *( new X() );
//...
delete &x;
Run Code Online (Sandbox Code Playgroud)