簡體   English   中英

重新定義類成員數據類型

[英]Redefining class member data types

初始化后是否可以更改類成員的數據類型? 說,重新定義一個名為“ Foo”的雙精度字符串?

否。類型在編譯時是固定的。 如果要在雙精度字符串和字符串之間切換,則可以達到std :: variant

std::variant<double, std::string> val = 1.0;
val = std::string("hello");

作為您的評論的答案,您應該使用std::optional

std::optional<int> Do(int x, int y)
{   
    if ( x == y ) 
    {
        return 42; 
    }

    return {}; 
}   

int main()
{   
    auto ret = Do(3,2); // << exchange your test data here!
    if ( ret ) 
    {   
        std::cout << "Got an answer" << ret.value() << std::endl;
    }   
    else
    {   
        std::cout << "No answer" << std::endl;
    }
}   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM