предположим, что у меня есть следующий класс:
class MyInteger {
private:
int n_;
public:
MyInteger(int n) : n_(n) {};
// MORE STUFF
};
И пусть этот класс не имеет тривиального конструктора по умолчанию MyInteger()
. Я должен всегда снабжать int
, чтобы инициализировать его по какой-либо причине. А потом предположим, что где-то в моем коде мне нужен vector<MyInteger>
. Как инициализировать каждый компонент MyInteger
в этом vector<>
?
У меня две ситуации (возможно, одно и то же решение, но я все равно их укажу), нормальная переменная внутри функции:
int main(){
vector<MyInteger> foo(10); //how do I initialize each
//MyInteger field of this vector?
doStuff(foo);
}
и как данные в классе:
class MyFunClass {
private:
vector<MyInteger> myVector;
public:
MyFunClass(int size, int myIntegerValue) : myVector(size) {};
// what do I put here if I need the
// initialization to call MyInteger(myIntegerValue) for all
// components of myVector?
};
Возможно ли это сделать только в списке инициализации или я должен написать инициализацию вручную в конструкторе MyFunClass (int, int)?
Это кажется очень простым, но все же я как-то пропустил его inmy книгу и не могу найти в Интернете.