我正在从 C 指针过渡到 C++ 指针,现在正在学习 auto_ptr。这是我尝试过的程序:
#include <iostream>
#include <memory>
#include "Car.h"
using namespace std;
typedef auto_ptr<Car> CarPtr;
int main() {
CarPtr au_ptr1(new Car());
CarPtr au_ptr2 = new Car();
Car *norm_ptr1 = new Car();
Car *norm_ptr2(new Car());
int *i_ptr1=new int();
int *i_ptr2(new int());
}
像下面这样的陈述是什么意思?
int *i_ptr2(new int());
Car *norm_ptr2(new Car());
上面提到的语句编译成功。而下面的语句则抛出编译错误 -CarPtr au_ptr2 = new Car();
为什么会这样?
提前致谢