Допустим, у меня есть фрагмент кода, подобный следующему:
// Foo.h:
class Incomplete; // the forward-declaration
class Foo {
void bar(Incomplete&); // doesn't really matter
};
// Foo.cpp:
class Incomplete : private Baz {
};
void Foo::bar(Incomplete&) {
}
Является ли классы с прямым объявлением, как в Foo.h
, совместимыми со стандартами? Если да, то на каком языке? Как насчет того же protected
наследования?