相关疑难解决方法(0)

C++中的私有虚方法

在C++中创建私有方法虚拟的优点是什么?

我在开源C++项目中注意到了这一点:

class HTMLDocument : public Document, public CachedResourceClient {
private:
    virtual bool childAllowed(Node*);
    virtual PassRefPtr<Element> createElement(const AtomicString& tagName, ExceptionCode&);
};
Run Code Online (Sandbox Code Playgroud)

c++ polymorphism access-specifier

118
推荐指数
5
解决办法
6万
查看次数

使变量成为常数的重要性是什么?

在什么情况下需要使变量恒定?

如果您希望变量始终保持相同的值,就可以不更改它吗?

c++ variables constants

9
推荐指数
2
解决办法
327
查看次数

C++中的函数覆盖在没有"虚拟"的情况下工作

我有一个包含一些函数的类(没有虚函数),还有两个类公开继承该类.在这两个子类中,我重写了基类的相同功能.

在main(位于同一文件)中创建所有三个类的对象之后,我使用baseclass对象调用原始函数,并使用derivedclass对象调用覆盖的函数.

我期待所有3个函数调用从基类运行原始函数(因为我没有在代码中的任何地方使用'virtual'),但我实际上让该函数的每个版本都按照它所在的类运行定义(3个不同版本).

我有类Base和Derived如下:

struct Base
{
   void foo();
};

struct Derived : Base
{
   void foo();
};
Run Code Online (Sandbox Code Playgroud)

在主要:

int main()
{
   Derived d;
   d.foo();
}
Run Code Online (Sandbox Code Playgroud)

我认为如果不使用'virtual',d.foo()应该运行Base :: foo().

c++ virtual overriding

1
推荐指数
1
解决办法
3606
查看次数