在下面的代碼片斷在代碼中調用C++操作符int爲什麼?
#include <iostream>
class A
{
public:
A(int i) : m_i(i) { }
public:
int operator()(int i = 0) const
{
return m_i + i;
}
operator int() const
{
return m_i;
}
operator float() const
{
return 0.0;
}
private:
int m_i;
friend int g(const A&);
};
int f(char c)
{
return c;
}
int g(const A& a)
{
return a.m_i;
}
int main()
{
A f(2), g(3);
int i = f;// call 1
std::cout << f(1) << g(f) << std::endl;// call 2
return 0;
}
我給如呼叫1的一些意見,並調用2的主要功能。 我明白爲什麼操作符int在調用1。 但我不明白爲什麼在/ /致電2 有些身體可以解釋我爲什麼如此。
擺脫您的'f'和'g'功能。他們沒有被用在代碼中。 – ghostofstandardspast
如果你沒有命名一個變量和一個相同名稱的函數,它可能會變得更清晰。 –
其在線測試中的問題。我剛剛在這裏複製。 – Vishwamithra