gpt4 book ai didi

c++ - "virtual A* someMethod"与 "virtual class A* someMethod"

转载 作者:太空宇宙 更新时间:2023-11-04 15:37:53 26 4
gpt4 key购买 nike

我一直在努力理解一段这样的代码:

class A {
// some class definition
}

class B {
public:
virtual A *someMethod();
virtual class A *someOtherMethod();
}

我似乎无法理解 someMethodsomeOtherMethod 之间的区别(或者如果存在的话)——两者似乎都是虚拟方法,而且都是在继承自 B 的类中重写。

有人可以阐明这个虚拟类语法吗?

最佳答案

A类名class A详尽的类型说明符。如果没有其他名为 A 的内容,则两者都引用名为 A 的类。

如果还有其他东西(可能是函数或变量)称为 A,那么 A 的非限定使用将引用它。您需要详细说明符 class A 来引用该类。如评论中所述,您也可以使用 class A 而无需事先声明该类; elaborated 说明符的使用足以将类名引入最内层的命名空间。

与虚函数语法关系不大;这两种形式都可用于指定类型,无论是作为函数的返回类型还是在任何其他上下文中。

关于c++ - "virtual A* someMethod"与 "virtual class A* someMethod",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29099958/

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