调用 const 成员函数

发布于 2024-10-17 19:18:48 字数 296 浏览 3 评论 0原文

我调用了一个对象的 const 成员函数。

在之前设置大小后,我在 MainWindow 上创建了一个名为 get_size() 的对象。

调用基类 Gtk::Window 的 get_size() 方法。

它给出错误:“Gtk::Window”不是“MainWindow”的可访问基础。

MainWindow 是从 Gtk::Window 类继承的,

class MainWindow: Gtk::Window
{

};

这可能是什么原因。

i have called const member function of an object.

I created an object on MainWindow, den called get_size() after setting size previously.

calling get_size() method of base class Gtk::Window.

It gives error: ‘Gtk::Window’ is not an accessible base of ‘MainWindow’.

MainWindow is inherited from Gtk::Window class

class MainWindow: Gtk::Window
{

};

What could be the reason for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

2024-10-24 19:18:48

默认情况下,类的继承是private。您需要公开地从 Gtk::Window 派生:

class MainWindow: public Gtk::Window {

Inhertance is private by default for classes. You need to derive from Gtk::Window publicly:

class MainWindow: public Gtk::Window {
狼性发作 2024-10-24 19:18:48

大概应该是:

class MainWindow: public Gtk::Window
{

};

should probably be:

class MainWindow: public Gtk::Window
{

};
指尖上得阳光 2024-10-24 19:18:48

如果您使用 private 单词继承(当您没有为 class 指定任何单词时,这就是您继承的方式)来自 Gtk::WindowMainWindow 中变为私有(即使它在 Gtk::Window 中声明为 publicprotected)。

如果您使用 protected 字进行继承,则基类中的每个 public 方法都会成为继承类中的 protected 方法。 private 方法保持原样。

public 继承不会改变任何东西。它是使用 struct 关键字声明的类的默认继承。

您似乎忘记在类声明中使用 public

If you inherit with private word (and that's how you inherit when you don't specify any word for class) every method from Gtk::Window become private in MainWindow (even if it's declared as public or protected in Gtk::Window).

If you inherit with protected word every public methods from base class become protected methods in inherited class. private methods stay as they are.

public inheritance doesn't change anything. It's default inheritance for class declared with struct keyword.

It seems you forgot to use public in class declaration.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文