簡體   English   中英

如何重載()運算符作為前綴?

[英]How can I overload () operator as prefix?

我想在兩個距離相關的類之間實現顯式類型轉換。 我需要重載()作為前綴,才能像這樣使用它:

class1=(class2)class2_object;

查看用戶定義的conversion

例:

struct Y {};

struct X {
     operator Y() const { return ...; } 
};

int main() {
    X x;
    Y y1 = static_cast<Y>(x); // uses conversion operator
    Y y2 = (Y)x; // also possible, but don't use C-style casts in C++!
    Y y3 = x; // even this is possible...
}

在C ++ 11中,您可以使用關鍵字explicit以避免意外的隱式轉換(即Y y3 = x; ):

     explicit operator Y() const { return ...; } 

暫無
暫無

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

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