Problem
请注意以下例子是否有问题
class Apple {
public:
Apple(char ch, int count) : array(count, 1), buffer(count, ch) {}
private:
std::string buffer;
std::vector<int> array;
};
Warning
g++ 4.8.4
使用-Wall -std=c++11
编译时,会出现一个警告,内容如下
xxx.cpp:11:15: warning: ‘Apple::buffer’ will be initialized after [-Wreorder]
Conclude
出现这个警告的原因是因为初始化的顺序和类成员声明的顺序不一样(在某些不推荐的情况下,类成员的初始化可能含有依赖关系),做如下改变就行了
Apple(char ch, int count) : buffer(count, ch), array(count, 1) {}
或者在编译参数中打开-Wno-reorder
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。