什么`类HelloWorld:public Gtk :: Window`是什么意思?

1 c++ class

我正在关注这里发现的Gtk"Hello World"教程,并且我在一个我以前从未见过的课堂声明中遇到了一句话(我现在只学习了几个月的编程),而我我想知道是否有人可以向我解释.这条线是

class HelloWorld : public Gtk::Window
Run Code Online (Sandbox Code Playgroud)

我知道class HelloWorld在做什么,但我以前从未见过public Gtk::Window.提供完整的头文件以供参考.

#ifndef GTKMM_EXAMPLE_HELLOWORLD_H
#define GTKMM_EXAMPLE_HELLOWORLD_H

#include <gtkmm/button.h>
#include <gtkmm/window.h>

class HelloWorld : public Gtk::Window
{

public:
  HelloWorld();
  virtual ~HelloWorld();

protected:
  //Signal handlers:
  void on_button_clicked();

  //Member widgets:
  Gtk::Button m_button;
};

#endif // GTKMM_EXAMPLE_HELLOWORLD_H
Run Code Online (Sandbox Code Playgroud)

Ale*_*ler 6

它意味着HelloWorld派生自Gtk::Window,所以它继承了它的行为.

HelloWorld代表一个Gtk窗口,所以从Gtk的窗口类派生它是很自然的.它的构造函数可能会向窗口添加一个按钮(实际窗口由父类构造函数创建,在创建新实例时自动调用HelloWorld...)并将信号处理程序(on_button_clicked)连接到窗口.

你可以Gtk::Window通过一个实例来调用所有的方法HelloWorld.反过来,HelloWorld可以覆盖虚拟方法Gtk::Window来改变其行为.