2017-04-06 70 views
-1

如何可以在C聲明一個變量與不同類型聲明一個變量與++ ++不同類型的用C

struct maxKernelBetTwoVec 
{ 
    size_t Elem1; 
    double Elem2; 
    }; 

所以elem2時可以是int,或雙面,或字符串。

+3

這取決於你在做什麼。你爲什麼要這樣? – Galik

+1

你必須使用工會 – eyllanesc

+1

閱讀此:http://stackoverflow.com/questions/252552/why-do-we-need-c-unions – eyllanesc

回答

0

您可以使用union,但它們很難正確和安全地使用。一個更好的選擇是使用一個std::variant

struct maxKernelBetTwoVec 
{ 
    size_t Elem1; 
    std::variant<int, double, std::string> Elem2; 
}; 

不幸的是,std::variant只在C++ 17提供。如果您還不能使用std::variant,則可以使用boost::variant代替。

+0

thnx很多,這正是我需要的 – user3406305