Re: Бага маздая или фича ANSI?
От: Cris Украина  
Дата: 28.06.10 07:33
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Столкнулся с тем что в режиме совместимости с ANSI С++ (/Za), VS2008 перестает видеть члены базового класса, если тот объявлен внутри класса-шаблона. Отсюда вопрос знатокам: это бага маздая или фича ANSI?


А>
А>template<class A> class CMain
А>{
А>    //
А>    public:
А>        //
А>        class CBase
А>        {
А>            //
А>            public:
А>                //
А>                int m_aaa;
А>                CBase(void) { m_aaa = 0; }
А>        };
А>        //
А>        class CTest : public CBase
А>        {
А>            //
А>            public:
А>                //
А>                CTest(void)
А>                {
А>                    m_aaa = 0; // компилируется только если включено маздаевское расширение языка С++ или если класс CMain не является шаблоном, иначе верещит что m_aaa не объявлен
А>                    CBase::m_aaa = 0; // компилируется всегда, в т.ч. и в режиме ANSI С++ (/Za)
А>                }
А>    };
А>};
А>


m_aaa = 0; // комп ....
заменить на this->m_aaa=0;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.