The g ++ kompilator narzeka z tego błędu, gdy Oświadczam znajomego wygląda następująco:klasa klucz musi być zadeklarowane podczas deklarowania znajomego
friend MyClass;
zamiast
friend class MyClass;
Dlaczego klasasłowo kluczowe jest wymagane? (kompilator Borland C++, BTW, nie wymaga tego).
Czy kompilator nie mógł po prostu wyszukać MyClass w tabeli symboli i stwierdzić, że została zadeklarowana jako klasa? (oczywiście robi to sprawdzanie, ponieważ narzeka, gdy MyClass nie zostało zadeklarowane)
To nie jest tak, że składa deklarację klasy: Nadal muszę mieć albo klasę powyżej, albo przynajmniej zgłosiło to napastnik.
Byłoby dla mnie sensu (byłoby świetnie faktycznie) jeśli
friend class MyClass;
pędzi do przodu deklarację w razie potrzeby, w przeciwnym razie po prostu wydaje się składniowej soli do mnie.
byłem wesoło użyciu przyjaciela wypowiedzi bez klasa lub struct hasła bez skarg kompilator prawie 20 lat. Czy jest to coś całkiem nowego?
20 lat! Musiałeś pracować z Bjorn. –
Użyłem C-Front, kiedy byłem w szkole średniej około 1989 roku. Używam głównie Borland C++ od około 1991. –
@Martin: Bjorn ?! Lol. –