這裏的一個例子是運營商從C++編程語言超載的例子:有關運算符重載
struct X{
int I;
X(int);
X operator+(int);
};
struct Y{
int I;
Y(X);
Y operator+(X);
operator int();
}
我不清楚什麼是「詮釋我」做在X和Y的定義,除了,我不知道如何分析的功能,「操作INT()」中的X.
這裏的一個例子是運營商從C++編程語言超載的例子:有關運算符重載
struct X{
int I;
X(int);
X operator+(int);
};
struct Y{
int I;
Y(X);
Y operator+(X);
operator int();
}
我不清楚什麼是「詮釋我」做在X和Y的定義,除了,我不知道如何分析的功能,「操作INT()」中的X.
operator int()
的定義提供了從結構轉換爲int
,所以你可以寫:
X(4);
Y y(x);
int a = y; // calls Y::operator int()
確切這意味着轉換取決於操作是如何實現的
在結構int I
聲明成員變量,(兩者)命名爲I
和類型的int
我假設在int I
兩個結構都代表對象的內部狀態。
Y operator+(X);
這是一個操作符,對於y + x
返回Y
類型的新對象。
operator int();
這是轉換算子,這意味着一個Y
可以轉換爲一個int
。
操作符沒有定義,所以它們的實際語義是未知的。
成員函數的主體沒有被定義,所以這些類不做任何事情...... –