我有一些代碼有點像這樣:如何在命名聯合中使用構造函數?我怎樣才能在以後更改同一個聯合實例中的值? C++/C++ 11
class Token{
public:
union tester{
double literal;
string name;
tester(double op) : literal(op) {};
tester(string val) : name(val) {};
tester(): tester(0.0) {};
};
void setUp(){
//the literal and name members of tester should be initialized here
};
/*other functions are below, two of which require that the values of literal
and name can be changed*/
};
我需要來初始化文字和名成員,但我不知道怎麼樣。我已經試過做一個類型測試器的變量,並做到這一點:測試器測試(45.0);但是,我只能設置其中一個成員變量,並簡單地使用測試儀(45.0);不工作,或者我試過這個:令牌的東西; thing.name =「Elly」,那沒用。我的類也不使用構造函數。所以,我的問題是,我如何設置,然後在Token中的測試器中更改成員變量的值?
我正在使用C++ 11編譯器。如果這個問題已經回答了,或者太愚蠢了,我一直在環顧四周,但我真的不明白我如何才能使這個工作。我錯過了一些東西,但我我不太清楚是什麼。)
你知道'union'的成員共享相同的內存嗎?有沒有可能你真的想要一個'struct'? – Nabla