Я являюсь промежуточным пользователем C++, и я столкнулся со следующей ситуацией. Определение класса, показанное ниже, компилируется с помощью компилятора 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()'. Вот почему вы не можете его использовать. – AnT
Да. Я очень ошибался. Оператор ключевого слова взял меня в другое место. – vthulhu
Возможный дубликат [Что означает этот синтаксис C++ и почему он работает?] (Http://stackoverflow.com/questions/3632746/what-does-this-c-syntax-mean-and-why-does-it -work) – sbi