я после официальной документации по libsigc++-2.0
и я нашел this example:Ошибка в официальном примере libsigC++ 2.0?
class AlienDetector
{
public:
AlienDetector();
void run();
sigc::signal<void> signal_detected;
};
void warn_people()
{
cout << "There are aliens in the carpark!" << endl;
}
int main()
{
AlienDetector mydetector;
mydetector.signal_detected.connect(sigc::ptr_fun(warn_people));
mydetector.run();
return 0;
}
Как вы можете видеть, как run()
функции и конструктор для класса AlienDetector
не определены, и поэтому этот код не компилируется (но документ принимает само собой разумеющееся, что этот код будет работать).
Еще более странным является тот факт, что если я определяю как run()
и конструктор для класса, я не могу увидеть эффект библиотеки в любом случае, по-видимому, сигнал не работает, и когда run
вызывается в main
ни один слот не активирован.
Я что-то забыл о чем-то здесь? Как эта вещь должна быть переписана?
Пример кода содержит функцию запуска позже (https://developer.gnome.org/libsigc++-tutorial/stable/ch03.html). Однако пример выглядит неполным. – Petesh
@ Пойдем, почему он предлагает скомпилировать и запустить этот код, зная тот факт, что он неполный? – user2485710
В дикой догадке, неполная документация. Вы можете вносить в журнал вопрос об этом, чтобы его можно было решить. – Petesh