2011-11-15 64 views

回答

2

会不会考虑一个常量表达式?

不,它不会。在C++ 11中,引入了一个新的关键字constexpr,它有助于概括常量表达式的概念。如果String来自​​的构造函数足够小,那么它可以被声明为constexpr;然而,这样的构造函数可能必须分配内存,所以它不合格。

+0

在上面的例子中,变量i可能不是一个常量表达式,因为它可以被改变,对吗?一个常量表达式必须是明确的并且不会改变的东西 - 因此编译器可以确定它的值。唯一令我困惑的是它需要成为一个整体类型吗?如何像常量字符串(“abc”);? – yapkm01

+0

@ yapkm01:是的,在C++中,常量表达式必须是整型。 –