Я пытался понять кусок кода, который идет как это:«виртуальный A * SomeMethod» против «класса А виртуальной * SomeMethod»
class A {
// some class definition
}
class B {
public:
virtual A *someMethod();
virtual class A *someOtherMethod();
}
Я не могу понять разницу (или, если таковая существует, по этому вопросу) между someMethod
и someOtherMethod
- как представляется, виртуальные методы и оба переопределен в классах, которые наследуются от B.
Может кто-нибудь пролить некоторый свет на этот виртуальный синтаксис класса?
Кроме того, если ранее не было декларации 'A', специфицированный спецификатор типа вводит имя' A' в самую внутреннюю охватывающую область пространства имен декларации. – 0x499602D2
Означает ли это, что someOtherMethod, по сути, будет работать как какое-то форвардное объявление для A (если A было определено после B)? – fstanis
@fstanis Да, но не 'someMethod', если' A' ранее не было объявлено в этой точке программы. – 0x499602D2