2014-09-21 26 views
1

我不斷收到-Wreorder錯誤,說「willl會被初始化」,但這很奇怪,因爲我有兩個變量,int width,height;然後在初始化列表中我做:寬度(col_width),高度(col_height),並且我得到一個警告說 「警告:'FixedGridLayout :: height'將在[-Wreorder] int width,height;之後初始化;」g ++警告「將在後面初始化」,不管實際順序如何

顯然,我的初始化與變量定義完全相同,高度應該在初始化後,所以它爲什麼會警告我?即使我切換它,然後它說 「警告:'FixedGridLayout :: width'將在[-Wreorder] int width,height;之後初始化;」

這是有道理的,但令人沮喪的是,無論我將它放在什麼順序中,都會給我這個警告!我知道這不是什麼大不了的事,只是一個警告,但這很令人沮喪,並且這讓我非常不快。我知道一個類似的問題已經被問到,但這個問題不是重複的,因爲其他問題是基於這樣一個事實,即提問者有錯誤順序的初始化列表,而我的問題是基於以下事實:初始化並沒有什麼區別。所以請不要將其標記爲重複;)

+4

請發佈[MCVE](http://stackoverflow.com/help/mcve)。 – juanchopanza 2014-09-21 21:28:27

+0

我還應該注意到,我使用的是Qt,我不想只關閉警告,我很好奇如果有人遇到過這種情況,並且他們知道發生了什麼事情。 – Tory 2014-09-21 21:28:35

回答

4

沒關係,我想通了,這是其中實際問題不在警告/錯誤消息中的那個時間之一。我也有一個基類被初始化,這就是實際導致錯誤的原因。

我有這樣的:

MyClass::MyClass(QWidget *parent, int col_width, int row_height) 
    : width(col_width), height(row_height), BaseClass(parent) {} 
              //^^^^^^^^^^ Here's the Problem!!! 

我需要的是這樣的內容:

MyClass::MyClass(QWidget *parent, int col_width, int row_height) 
    : BaseClass(parent), width(col_width), height(row_height) {} 

它只是扔我,因爲消息被警告高度被初始化後,它沒」不要說任何關於BaseClass,這是實際的問題。