Название: Можно ли использовать вектор как член класса? Отправлено: sandy от Июль 04, 2005, 00:21 Имеется:
#include <vector> struct str { ... }; class cls { std::vector<str>v(10); ... }; void cls::f() { v.resize(v.size()+1) ... } Ругается следующим образом: invalid data member initialization (use `=' to initialise static data members) Если пробую объявить этот член так: std::vector<str>v; не ругается, компилируется. Но при исполнении - segmentation fault (core dump) Название: Можно ли использовать вектор как член класса? Отправлено: Admin от Июль 04, 2005, 10:08 попробуй заменить
std::vector<str>v(10); на std::vector<str>v; Название: Re: Можно ли использовать вектор как член класса? Отправлено: sandy от Июль 04, 2005, 11:39 Цитата: "sandy" Если пробую объявить этот член так: std::vector<str>v; не ругается, компилируется. Но при исполнении - segmentation fault (core dump) Название: Можно ли использовать вектор как член класса? Отправлено: sandy от Июль 04, 2005, 11:41 А что скажете по ипользованию std::vector<str>* v, а в функцию передавать std::vector<str>& v?
Это я в Страуструпа вычитал, но еще не испытал. Если получится - отпишу Название: Re: Можно ли использовать вектор как член класса? Отправлено: sandy от Июль 05, 2005, 13:09 Короче говоря, так все это оформить надо:
#include <vector> struct str { ... }; class cls { std::vector<str>v; ... public: cls(); }; cls::cls() : v(10) {} void cls::f() { v.resize(v.size()+1) ... } Так мне подсказали на http://www.nixp.ru/forum/ |