Я средний пользователь С++, и я столкнулся со следующей ситуацией. Определение класса, показанное ниже, прекрасно компилируется компилятором g++. Но я не могу понять, что именно означает весь синтаксис.
Я предполагаю, что функция operator int()
возвращает тип int
.
Более того, я не могу понять, как использовать перегруженный operator ()
в main()
class A
{
public:
A(int n) { _num = n; } //constructor
operator int();
private:
int _num;
};
A::operator int() // Is this equivalent to "int A::operator()" ??
{
return _num;
}
int main()
{
int x = 10;
A objA(x); //creating & initializing
// how to use operator() ?
// int ret = objA(); // compiler error when uncommented
return 0;
}
Любая помощь будет оценена.
operator ()
? Что перегрузилоoperator ()
? В вашем коде нет перегруженныхoperator ()
. Вот почему вы не можете использовать его. - person AnT   schedule 03.09.2010