предположим, у меня есть следующий класс:
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)?
Это кажется очень простым, и все же я почему-то пропустил это в моей книге и не могу найти в Интернете.