2010-06-14 74 views
1

讓我說我有一個對象。我將它分配給一個整數。我可以分配一個對象到一個整型變量嗎?

MyClass obj1 = 100;//Not valid 

比方說,我有一個接受整數的參數化構造函數。

MyClass(int Num) 
{ 
    // .. do whatever.. 
} 

MyClass obj1 = 100;//Now, its valid 

同樣在任何情況下,反之亦然有效?!

eg) int Number = obj1;//Is it VALID or can be made valid by some tweeks 

編輯

,我發現這個使用轉換函數就可以了。 轉換函數通常被稱爲「轉換操作符」,因爲它們(連同構造函數)是使用轉換時調用的函數。

轉換函數使用以下語法:

運營商轉換類型名稱()

例如)許多人都整齊地低於

回答

6

是的,只要該對象可以直接或通過中間對象隱式轉換爲int即可。

E.g.如果你的類有一個轉換operator int它的工作:

MyClass 
{ 
public: 
    operator int() const { return 200; } 
}; 
0

解釋它是的,你需要添加一個轉換運算符到MyClass

運算符int();

2

有隻有一個參數C++的構造函數自動執行隱式類型轉換。這就是爲什麼從int轉換到MyClass的原因。要創建從MyClass到int的轉換,您必須在MyClass中定義operator int()

0

MyClass的是不是一個整數,因此你不能做int Number = obj1; 你應該有一個方法或操作(由他人陳述)在MyClass中返回一個int。 (int number = obj1.GetNum();

相關問題