通过基类虚函数选择派生类文件全局变量

发布于 2024-11-17 12:29:13 字数 355 浏览 5 评论 0原文

这是我面临的一个常见问题。 我打算为现有代码编写一个派生类。让我提供代码片段(仅作为示例):

Base_class_file:

const int addr=0xA;

Base_class::Read()
{
  return *addr;
}

请注意,addr 变量是基类文件中的全局变量。 现在,我正在编写派生类,因为要更改一些功能并更改地址。我想重新使用 Read() 方法,并在派生类文件中提及新的 addr(假设为 0xB)。 由于此变量是全局变量,我如何向基类 Read() 方法提及使用 addr=0xB 而不是 0xA ?

非常感谢您的帮助。

This is a common problem I am facing.
I am intended to write a derived class for an existing code. Let me provide the code snippet (just example):

Base_class_file:

const int addr=0xA;

Base_class::Read()
{
  return *addr;
}

Please note, the addr variable is a global variable in base class file.
Now, I am writing the derived class because to change some functionality and also to change the addr. I would like to re-use the Read() method, and just mention the new addr(let's say 0xB) in the derived class file.
Since this variable is a global variable, how do I mention to the base class Read() method to use the addr=0xB than the 0xA ??

Your help is greatly appreciated.

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

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

发布评论

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

评论(2

川水往事 2024-11-24 12:29:13

怎么样……

virtual int & GetTheGlobalVariable() const {return addr;}

然后在子类中重写该方法以返回不同的结果?

How about....

virtual int & GetTheGlobalVariable() const {return addr;}

and then overriding that method in the subclass to return a different result?

五里雾 2024-11-24 12:29:13

您在派生类中重写它并让它返回0xB。当然,只有当基类Read方法被声明为virtual时,这才有效。

You override it in the derived class and have it return 0xB. Of course this works only if the base class Read method is declared virtual.

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