我還沒有找到一種方法來在構造函數內成功地初始化類成員,我找不到原因。C++類的靜態結構成員定義
我有一個頭文件:
#pragma once
struct STATE_MOUSE {
bool moving;
int left_button;
int right_button;
int middle_button;
bool scroll_up;
bool scroll_down;
};
class Message {
private:
static STATE_MOUSE state_mouse;
public:
Message();
~Message();
};
然後,我有一個源文件:
#include "message.hpp"
STATE_MOUSE Message::state_mouse = {false, 0, 0, 0, false, false};
Message::Message() {
//Would like to initialize state_mouse here somehow.
}
Message::~Message() {
}
我們的問題。這個設置似乎工作。然而,我用來初始化構造函數中的成員,並且我還沒有找到用這個靜態結構成員來實現這一點的方法。
下面的方法不起作用,可能有人解釋一下爲什麼?
state_mouse.moving = false;
'static'構件系在'class'作爲一個整體,而不是個別'instances'其中'constructor'構建體。 – CinCout
只有一個'Message :: state_mouse'的實例。它存在於任何'Message'實例創建之前。在'Message'構造函數中初始化它已經太遲了。 –
阿當。當然你的答案很有道理。謝謝! –