vector
В другом классе есть массив пользователей.
vector <CUser> m_vuUsers;
CUser user(str);
m_vuUsers.push_back(user);
int index;
m_vuUsers.erase(m_vuUsers.begin() + index);
выдает следующее:
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(810) : error C2558: class 'CUser' : no copy constructor available or copy constructor is declared 'explicit'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(809) : while compiling class-template member function 'void std::vector<_Ty>::_Insert_n(std::vector<_Ty>::iterator,std::vector<_Ty>::size_type,const _Ty &)'
with
[
_Ty=CUser
]
e:\Vasa\Projects\Autentification server\Users.h(21) : see reference to class template instantiation 'std::vector<_Ty>' being compiled
with
[
_Ty=CUser
]
При определении копирующего конструктора. Выдет ругательство на operator=. Что делать? Переопределять все подряд не хочется.
Спасиба.
Есть класс пользователей.
В другом классе есть массив пользователей.
vector <CUser> m_vuUsers;
CUser user(str);
m_vuUsers.push_back(user);
int index;
m_vuUsers.erase(m_vuUsers.begin() + index);
выдает следующее:
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(810) : error C2558: class 'CUser' : no copy constructor available or copy constructor is declared 'explicit'
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(809) : while compiling class-template member function 'void std::vector<_Ty>::_Insert_n(std::vector<_Ty>::iterator,std::vector<_Ty>::size_type,const _Ty &)'
with
[
_Ty=CUser
]
e:\Vasa\Projects\Autentification server\Users.h(21) : see reference to class template instantiation 'std::vector<_Ty>' being compiled
with
[
_Ty=CUser
]
При определении копирующего конструктора. Выдет ругательство на operator=. Что делать? Переопределять все подряд не хочется.
Спасиба.
Не кажется что в векторах лучше хранить указатели на объекты а не сами объекты.
На мой взгляд в векторах рациональнее всего хранить только POD типы а все остальное указатели.
Не кажется что в векторах лучше хранить указатели на объекты а не сами объекты.
На мой взгляд в векторах рациональнее всего хранить только POD типы а все остальное указатели.
Удивительно, но прокатило. Надеюсь только утечек памяти не будет...
Удивительно, но прокатило. Надеюсь только утечек памяти не будет...
Не будет если будешь вовремя все удалять.;)
Не кажется что в векторах лучше хранить указатели на объекты а не сами объекты.
Это миражжжжж....
На мой взгляд в векторах рациональнее всего хранить только POD типы а все остальное указатели.
Ерунда.
Не будет если будешь вовремя все удалять.
Ну это и есть одна из задач контейнера.
Удивительно, но прокатило.
Ничего удивительного. Указатель имеет конструктор копирования и оператор присваивания.
При определении копирующего конструктора. Выдет ругательство на operator=. Что делать? Переопределять все подряд не хочется.
Ну так все и не надо, а только дефолтный и копирующий конструкторы и оператор присваивания.
Правило хорошего тона:
Определяй для класса СРАЗУ:
Дефолтный конструктор, конструктор копирования, оператор присваивания и виртуальный деструктор.
Это миражжжжж....
Ерунда.
Ну это и есть одна из задач контейнера.
Ничего удивительного. Указатель имеет конструктор копирования и оператор присваивания.
Ну так все и не надо, а только дефолтный и копирующий конструкторы и оператор присваивания.
Правило хорошего тона:
Определяй для класса СРАЗУ:
Дефолтный конструктор, конструктор копирования, оператор присваивания и виртуальный деструктор.
Я удивлялся не тому что работает, а тому что работает у меня.