我一直得到-Wreorder错误,说"将在之后初始化",但这很奇怪,因为我有两个变量,int width,height; 然后在初始化列表中我做:width(col_width),height(col_height),我得到一个警告说"警告:'FixedGridLayout :: height'将在[-Wreorder] int width,height;之后初始化."
显然我的初始化与变量定义的顺序完全相同,高度应该在之后初始化,所以为什么它会警告我?即使我切换它,它也会说"警告:'FixedGridLayout :: width'将在[-Wreorder] int width,height;之后初始化."
这是有道理的,但令人沮丧的是,无论我把它们放在哪个顺序,它都会给我这个警告!我知道这不是什么大问题,这只是一个警告,但它非常令人沮丧,它正在推动我OCD:P
PS我知道有一个类似的问题已被问到,但这个问题并不重复,因为其他问题是基于提问者错误顺序的初始化列表这一事实,而我的问题是基于订单的事实初始化没有什么区别.所以请不要将此标记为重复;)
没关系,我想通了,这是其中一个实际问题不在警告/错误消息中的时间.我还初始化了一个基类,这就是实际导致错误的原因.
我有这个:
MyClass::MyClass(QWidget *parent, int col_width, int row_height)
: width(col_width), height(row_height), BaseClass(parent) {}
//^^^^^^^^^^ Here's the Problem!!!
Run Code Online (Sandbox Code Playgroud)
我需要的是这个:
MyClass::MyClass(QWidget *parent, int col_width, int row_height)
: BaseClass(parent), width(col_width), height(row_height) {}
Run Code Online (Sandbox Code Playgroud)
它只是把我扔了,因为消息是警告高度初始化之后,它没有说任何关于BaseClass,这是实际的问题.
归档时间: |
|
查看次数: |
4240 次 |
最近记录: |