0
我正在通過以下鏈接瞭解該主題。 Over Loading Typecasts C++重載Typecasts C++,它是如何工作的?
class Cents
{
private:
int m_nCents;
public:
Cents(int nCents=0)
{
m_nCents = nCents;
}
// Overloaded int cast
operator int() { return m_nCents; }
int GetCents() { return m_nCents; }
void SetCents(int nCents) { m_nCents = nCents; }
};
現在,在我們的例子中,我們調用PrintInt()這樣的:
int main()
{
Cents cCents(7);
PrintInt(cCents); // print 7
return 0;
}
我不明白如何PrintInt(cCents)映射到在打印7和使用重載INT操作。
您鏈接到確切解釋發生了什麼事的文章。你不瞭解什麼部分? – Mat
是的,實際上這篇文章解釋得非常好...... – J3soon
從鏈接文章中:「編譯器會首先注意到PrintInt接受一個整數參數,然後它會注意到cCents不是int,最後它會查看是否我們提供了一種將Cents轉換爲int的方法,因爲我們已經調用了我們的運算符int()函數,該函數返回一個int值,並將返回的int值傳遞給PrintInt()。這就解釋了*究竟發生了什麼。 –