有一个需求,需要用类有参数的构造函数初始化无参构造函数,而参数是容器类型,这就需要直接传入临时变量给有参构造函数。
#include<iostream>
#include<array>
#include<vector>
#if 1
class Base
{
private:
std::array<double, 2> _pixelSpacing;
public:
Base(const std::array<double, 2>& pixel_spacing) :_pixelSpacing(pixel_spacing) {}
Base() :Base(std::array<double, 2>{0.51, 0.51}) {}
//
bool getPixelSpacing()
{
std::cout << __FUNCTION__ << std::endl;
std::cout << _pixelSpacing[0] << "," << _pixelSpacing[1] << std::endl;
return true;
}
};
#endif
void test(const std::vector<int>& v)
{
for (const auto& item : v)
{
std::cout << item << std::endl;
}
}
int main()
{
Base b1;
b1.getPixelSpacing();
Base b2(std::array<double, 2>{0.53, 0.63});
b2.getPixelSpacing();
test(std::vector<int>{1, 3, 3, 4});
return 0;
}