Я знаю, что могу инициализировать вектор базового класса в производном, как это:
Base.h
#include <vector>
#include <utility>
public:
Base(std::vector<std::pair<int, int> > vec);
~Base();
private:
std::vector<std::pair<int, int> > vec_;
Base.cpp
Base::Base(std::vector<std::pair<int, int> > vec) : vec_(vec)
{
}
Derived.cpp
Dervied::Derived : Base({{0, 0}, {1, 1}})
{
}
Но есть ли способ инициализировать вектор vec_ этого базового класса в дочернем элементе?
Base.h
#include <vector>
#include <utility>
public:
Base();
~Base();
private:
std::vector<std::pair<int, int> > vec_;
Base.cpp
Base::Base()
{
}
Что-то вроде:
Derived::Derived : Base(vec_({{0, 0}, {1, 1}}))
Или это вообще невозможно в C ++?