Здравствуйте, nen777w, Вы писали:
N>Есть h файл. Назовём его a.h N>другой h Назовём его Object.h
N>При компиляции Object.cpp N>получаю: N>error C2653: 'A' : is not a class or namespace name
N>Хотя по идее компилятор не должны бимбосить friend, так как это используется только когда компилится друг. В данном сл. A::AA::get_object()
бимбосить = волновать.
J>а по теме — ты a.h подключил до объявления друга?
Нет.
Если бы get_object() была объявлена в глобальном пространстве имён то мне бы не пришлось подключать a.h почему если она в user namespace я должен?
Здравствуйте, nen777w, Вы писали:
N>Нет. N>Если бы get_object() была объявлена в глобальном пространстве имён то мне бы не пришлось подключать a.h почему если она в user namespace я должен?
По стандарту
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
...
N>Хотя по идее компилятор не должны бимбосить friend, так как это используется только когда компилится друг. В данном сл. A::AA::get_object() N>Что не так?
В данном случае используется квалифицированное имя, поэтому пространства имен и само имя функции должны быть видимы.
class Object;
namespace A
{
namespace AA
{
Object* get_object( Object* root );
}
}
class Object
{
friendObject* A::AA::get_object( Object* root );
};
Здравствуйте, nen777w, Вы писали:
J>>"бимбосить" — это что?
N>бимбосить = волновать.
а я вот в плане повышения общей образованности интересуюсь (или как там Печкин эту фразу говорил) — что за этимология у этого чудесного слова?
J>>а по теме — ты a.h подключил до объявления друга?
N>Нет. N>Если бы get_object() была объявлена в глобальном пространстве имён то мне бы не пришлось подключать a.h почему если она в user namespace я должен?
неквалифицированный друг класса, если он объявляется именно в этой декларации друга (т.е. если он не был уже объявлен ранее) помещается не в глобальное пространство имен, а в то, в котором объявлен сам класс, в твоем случае — A::AA.
J>>>"бимбосить" — это что? N>>бимбосить = волновать. J>а я вот в плане повышения общей образованности интересуюсь (или как там Печкин эту фразу говорил) — что за этимология у этого чудесного слова?
А я знаю
Слово понравилось, остальное меня не бимбосит.
Может оксфордский английский словарь знает?