L>Если этот баг еще и правильно работает, то классная получается фича!
Ещё какая классная фича, кстати. Фича работает в VC6 и VC7.
Я с помощью неё всё-таки type_of сделал!!!
Chez, ICQ#161095094
Posted via:RSDN@Home;version:1.1.3;muzikstamp:Пикник и Секта Мо — 06 — Будь навсегда
Здравствуйте, Chez, Вы писали:
C>Это баг или фича, что он компилируется? (MSVC7)
Баг. Это абсолютно не корректно, так как не учитывается область видимости классов (структур). В C это бы корректно, но в С++ уже нет. А то, что VC6 и VC7 компилируют это говорит только о их качестве.
А в 7.1 или 8.0 пробовал?
Re[2]: Нормальный ли это код?
От:
Аноним
Дата:
25.03.05 16:50
Оценка:
Здравствуйте, Pavel_Chikulaev, Вы писали:
P_C>Здравствуйте, Chez, Вы писали:
C>>Это баг или фича, что он компилируется? (MSVC7) P_C>Баг. Это абсолютно не корректно, так как не учитывается область видимости классов (структур). В C это бы корректно, но в С++ уже нет. А то, что VC6 и VC7 компилируют это говорит только о их качестве. P_C>А в 7.1 или 8.0 пробовал?
Что-то мне аж интересно стало : это где тут не учитывается область видимости классов?
По моему все отлично : нормальное объявление, а после определение.
Какая разница где определять, лишь бы права на это были, а то разные классы получаться.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, Pavel_Chikulaev, Вы писали: А>Что-то мне аж интересно стало : это где тут не учитывается область видимости классов? А>По моему все отлично : нормальное объявление, а после определение. А>Какая разница где определять, лишь бы права на это были, а то разные классы получаться.
область видимости
class A
{
public:
class X;
};
class B : public A
{
public:
class A::X //нельзя создавать объявлять класс как A::X внутри B, так как полное имя класса будет B::A::X что совсем не то что A::X
{
};
}
A::X x; // Не должно компилироваться - тип A::X не опеределен.
А>И компилятор в данном случае абсолютно прав.
Нифига, читай стандарт ed2k://|file|ansi_iso_iec_14882_1998%20(C++%20standard).pdf|2860601|AE2659B30E58BC7C8CAF12E26263BDE1|/
Здравствуйте, Chez, Вы писали:
L>>Если этот баг еще и правильно работает, то классная получается фича! C>Ещё какая классная фича, кстати. Фича работает в VC6 и VC7. C>Я с помощью неё всё-таки type_of сделал!!!