Здравствуйте!
Смысл тот, что имя класса (полное, со всеми неймспейсами) обозначает единственную сущность во всех единицах трансляции одной программы.
Да, я тоже думал, что это так. Но пример ниже отлично работает:
A.cpp
----------
struct A
{
void foo() {}
};
void fooA()
{
A a;
a.foo();
}
B.cpp
----------
struct A
{
void foo() {}
};
void fooB()
{
A a;
a.foo();
}
И получается что имя класса не такая уж и уникальная сущность в пределах всей программы.
И действительно пример с неполным типом тут не причем, чего это я его запостил... ?
Почему же? Работает.
Это Вы имеете ввиду классический пример, когда мы включаем в cpp файлы только объявление класса?