在“ C ++ Primer第5版”中,第12章“动态内存和智能指针”说:
像其他常量一样,必须初始化动态分配的const对象。可以隐式初始化定义默认构造函数(第7.1.4节,第263页)的类类型的const动态对象。其他类型的对象必须显式初始化。因为分配的对象是const,所以new返回的指针是指向const的指针(第2.4.2节,第62页)。
因此,这样的语句被认为是错误:
const int* pi = new const int;
如果我在GCC上运行此语句,它将无法编译,但是为什么要在MSVC14上编译呢?
const