В чем смысл этого синтаксиса

Следующий код компилируется. Но если я напишу код для вызова метода test с помощью jar это дает мне ошибку компиляции. Что на самом деле здесь происходит.

#include <iostream>    

using namespace std;

class A {
public:
  void test() {
    cout << "working" << endl;
  }
};

int main() {
  A foo;
  A jar();
}

2 ответа

Решение
 A jar();

объявляет функцию с именем jar без каких-либо параметров, а возвращаемый тип является объектом класса A,

Вы не можете объявить функцию внутри mainследовательно, вы получили ошибку.

Если вы пытались объявить указатель на функцию с именем ptr Вы должны объявить это так:

A (*ptr)(void);
Другие вопросы по тегам