gpt4 book ai didi

c++ - 为什么我应该在 C++ 中将所有方法标记为虚拟?有取舍吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:15:24 26 4
gpt4 key购买 nike

我知道虚拟方法为何以及如何工作,而且大多数时候人们告诉我应该始终将方法标记为虚拟方法,但是,如果我不打算覆盖它,我不明白为什么。而且我也知道有一个小的内存问题。

请解释为什么我应该将所有方法标记为虚拟的,以及有什么权衡。

代码示例:

class Point
{
int x, y;
public:
virtual void setX(int i);
virtual void setY(int i);
};

(这个问题不等于 Should I mark all methods virtual?,因为我想知道权衡,因为本例中的编程语言是 C++,而不是 C#)

OBS:如果有任何语法错误,我很抱歉,英语不是我的母语。

最佳答案

不,您不应该“将所有方法标记为虚拟”。

如果您希望该方法是虚拟的,则将其标记为虚拟方法。如果不是,请忽略关键字。

与常规方法相比,虚方法存在开销。如果您想了解更多相关信息,请查看有关 VTables 的维基百科方面。 .

关于c++ - 为什么我应该在 C++ 中将所有方法标记为虚拟?有取舍吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25594367/

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