gpt4 book ai didi

c++ - "virtual void IBase::Foo"和 "virtual void Foo"之间有什么区别吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:33 25 4
gpt4 key购买 nike

我使用了 VisualAssistX Implement Virtual Methods 选项并生成了:

class Base: public IBase
{
public:
Base(void);
~Base(void);
virtual void IBase::Foo();

我注意到我可以省略 IBase 并且程序仍然可以这样编译:

    virtual void Foo();

如果这是相同的代码?为什么 VisualAssistX 插入 IBase::?它只是一种提高可读性的“代码风格”吗?

谢谢

最佳答案

如果您要从具有冲突虚函数的多个基类派生,这将有助于解决歧义。我怀疑这就是 VisualAssistX 选择插入 IBase:: 的原因。

IBase:: 是否有助于提高可读性是值得商榷的。我个人觉得它会让人分心。

此外,语法甚至不是标准的 C++。参见 Distinct implementations for pure virtual functions with same name进行讨论并提出如何使用标准、可移植的 C++ 解决多重继承问题的建议。

关于c++ - "virtual void IBase::Foo"和 "virtual void Foo"之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com