<分区>
Possible Duplicates:
Overriding vs Virtual
How am i overriding this C++ inherited member function without the virtual keyword being used?
我目前正在学习 C++,但在编程语言方面我并非一无所知。有些东西对我来说毫无意义。我的理解是类中的 VIRTUAL 函数可以在子类中被覆盖。但是,默认情况下不允许吗?例如:
class Color {
public:
void Declare() { std::cout <<"I am a generic color."; }
};
class Purple : public Color {
};
如果我创建一个 Purple 的实例,然后调用它的 Declare 函数,那么它显然会在控制台窗口中输出“我是一种通用颜色”。如果我想在 Purple 类中重写这个函数,我可以简单地在那里定义它来生成:
class Purple : public Color {
public:
void Declare() { std::cout <<"I am purple."; }
};
这当然会输出“我是紫色的”。到控制台。如果默认情况下我可以覆盖函数,那么让 VIRTUAL 函数专门告诉编译器它可以被覆盖有什么意义呢?抱歉这个愚蠢的问题。 :/