【发布时间】:2018-03-13 21:53:05
【问题描述】:
#include <iostream>
using namespace std;
class Foo {
int i;
int * p = new int;
*p = 5; // This doesn't worl
// If I instead use int * p = new int(5); it works.
};
为什么?我看到这只发生在一个类中,如果我在主函数上编写相同的代码,它应该可以工作。
【问题讨论】:
-
不起作用的东西是无效的语法。
-
因为这样的表达式需要在函数内部。
-
一个是
p的初始化,另一个是*p的赋值。只允许在块范围之外进行初始化。