Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.07.2008, 11:00   #1
evil_factory
Новичок
Джуниор
 
Регистрация: 22.07.2008
Сообщений: 1
Счастье Что же это, бага vs2005, или VC++ 6.0?

фрагмент сырцов :

template < class T >
class List
{
element< T >* first;
List() : first(NULL) {}
List( List< T >& l ) {}
friend List< T >& factory();
public:
List< T >& operator ++ ();
List< T >& operator ++ ( int );
List< T >& operator -- ();
List< T >& operator -- ( int );
};

template < class T >
List< T >& factory() { return *(new List< T >); } //// на эту строку ругаеццо компилятор vs2005

Майкрософтный С++ 6.0 компилит всё отлично. Студия 2005 выдаёт вот что, несмотря на то что функция френдовая :
error C2248: 'List<T>::List' : cannot access private member declared in class 'List<T>'
Т.е. не может вызваться конструктор по умолчанию.

Компилится всё если сделать factory статик паблик методом класса, но это уже другая история. Вопрос в чём - чья это бага, с френдовой ф-цией : ms vs2005, vc++ 6.0 или же моя? =)
evil_factory вне форума Ответить с цитированием
Старый 24.07.2008, 22:30   #2
filosof_x86
...
Форумчанин
 
Аватар для filosof_x86
 
Регистрация: 01.06.2008
Сообщений: 134
По умолчанию

Это следствие не следованию стандарту C++ при переносе кода с одного компилятора на другой / с одной версии, на другую. У VC++ 6.0 со стандартом очень плохо, но хотя бы это постепенно исправляется в новых версиях.

Ваша проблема зарыта в том, что конструктор объявлен как private-член, т.е. фактически он запрещен.
filosof_x86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бага или фича функции Replace Function (VBA)? Alkaline Microsoft Office Excel 3 27.12.2007 11:26