相关疑难解决方法(0)

带空括号的默认构造函数

有没有什么好的理由在C++中调用默认构造函数时,一组空的圆括号(括号)无效?

MyObject  object;  // ok - default ctor
MyObject  object(blah); // ok

MyObject  object();  // error
Run Code Online (Sandbox Code Playgroud)

我似乎每次都自动输入"()".是不是有一个很好的理由不允许这样做?

c++ constructor c++-faq default-constructor most-vexing-parse

192
推荐指数
8
解决办法
3万
查看次数

STL映射是否在插入时初始化基元类型?

std::map喜欢这样的:

map<wstring,int> Scores;
Run Code Online (Sandbox Code Playgroud)

它存储球员的名字和分数.当有人获得分数时,我会这样做:

Scores[wstrPlayerName]++;
Run Code Online (Sandbox Code Playgroud)

当在用钥匙将地图元素没有wstrPlayerName它会创建一个,但它的增量前初始化为零或为空,或者它未定义?

我应该每次在增量之前测试元素是否存在吗?

我只是想知道,因为我认为原始类型的东西在创建时总是未定义的.

如果我写的东西如下:

int i;
i++;
Run Code Online (Sandbox Code Playgroud)

编译器警告我,我是未定义的,当我运行程序时,它通常不为零.

c++ dictionary stl initialization primitive-types

43
推荐指数
3
解决办法
9932
查看次数