您需要定義一個轉換操作符,要能寫
intVAR = myTYPEvar;
例如
operator int() const { return myTYPEin.getprivateint(); }
取考慮到在這種情況下,必須使用限定符const
定義成員函數getprivateint。
至於你的賦值操作符,那麼它只賦值一個表達式的含義,其中賦值操作符被使用的類型是int。例如使用賦值運算符,你可以寫
myTYPE obj1, obj2;
int x = obj1 = obj2;
在這種情況下將被分配到x()getprivateint的呼籲OBJ 2的值。
這裏是你將與你的賦值運算符有什麼示範例子
#include <iostream>
int main()
{
struct A
{
A(int x) : x (x) {}
int operator = (const A & a)
{
return a.x;
}
int x;
};
A a1(10), a2(20);
int x = a1 = a2;
std::cout << "x = " << x
<< ", a1.x = " << a1.x
<< ", a2.x = " << a2.x << std::endl;
return 0;
}
輸出是
x = 20, a1.x = 10, a2.x = 20
但是你可能不例如寫
x = a1;
你需要如上所示的轉換運算符。
或者,如果使用具有結構A中的例子中的代碼將看起來像
#include <iostream>
int main()
{
struct A
{
A(int x) : x (x) {}
operator int() const { return x; }
int x;
};
A a1(10);
int x = a1;
std::cout << "x = " << x
<< ", a1.x = " << a1.x
<< std::endl;
return 0;
}
輸出是
x = 10, a1.x = 10