gpt4 book ai didi

c# - 私有(private)在 C++ 和 C# 中意味着不同的东西吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:29:12 24 4
gpt4 key购买 nike

我想知道为什么 C# 不允许 private virtual 函数并遇到恰当命名的 Why are private virtual methods illegal in C#?

在接受的答案中 Eric Lippert (谁可能知道他在说什么……)说:

If you desire to restrict the ability to override the method in non-nested derived classes then you can do so by restricting the ability of non-nested classes to derive from the base class;

在 C++ 中,private: virtual 是有意义的,因为它意味着 “我希望从我派生的类覆盖此函数的功能,但它们不应该能够直接调用它”,换句话说,private 控制谁可以调用一个函数,但对谁可以覆盖它没有影响。

我意识到,因为首先只有派生类可以重写,并且由于 C# 禁止 private virtual 函数,所以这个问题可能毫无意义,是否还有其他情况可以影响函数的保护级别谁可以覆盖它(protected internal 也许)?

最佳答案

听起来您想要的是能够覆盖但不能调用的 C++ 世界;那么不:你不能在 C# 中这样做。不过,其他方法 很好 - 要么一开始就不要将其标记为 virtual,或者如果它是 sealed em>已经 虚拟

关于c# - 私有(private)在 C++ 和 C# 中意味着不同的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276820/

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