我相信现代 C++ 初始化器列表对于初始化对象非常有用,以至于不再需要定义自己的构造函数:
struct point
{
float coord[3];
};
point p = {1.f, 2.f, 3.f}; // nice !
但是,当我的类从另一个类继承时,这不起作用:
template<typename T>
class serializable
{
protected:
serializable() = default;
...
// other stuff
}
struct point : public serializable<point>
{
float coord[3];
};
point p = {1.f, 2.f, 3.f}; // Doesn't work :(
我尝试添加point() = default;
到我的点课程,但这也不起作用。我怎样才能仍然用初始化列表初始化点?