Użyłem VisualAssistX Implement Virtual Methods
opcję i generowane:Jakakolwiek różnica między "wirtualną pustką IBase :: Foo" i "wirtualną pustką Foo"?
class Base: public IBase
{
public:
Base(void);
~Base(void);
virtual void IBase::Foo();
Zauważyłem, że mogę pominąć IBase
i program nadal kompiluje tak:
virtual void Foo();
Jeśli jest to ten sam kod? Dlaczego VisualAssistX wstawia IBase::
? Czy jest to po prostu rodzaj "stylu kodu", który poprawia czytelność?
Dzięki
Myślę, że wstawienie nazwy przestrzeni/nazwy klasy * wewnątrz * deklaracji klasy ** zmniejsza ** czytelność. Nazwa funkcji bare jest w porządku. –
Czy to jest nawet poprawne C++? – NPE
@ RichardJ.RossIII: Nie mogę tego skompilować za pomocą 'g ++ 4.7.2':' error: nie można zadeklarować funkcji składowej 'B1 :: foo' wewnątrz 'D'' – NPE