为什么MSVC14允许声明指向动态未初始化的const对象的指针?

问题描述 投票:4回答:1

在“ 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上编译呢?

  • [
  • 在“ C ++ Primer 5th Edition”中,第12章“动态内存和智能指针”说:与任何其他const一样,必须初始化动态分配的const对象。类的const动态对象...
c++ dynamic-memory-allocation
1个回答
0
投票
const
© www.soinside.com 2019 - 2024. All rights reserved.