我在更新3之后一直在使用Visual Studio 2013并且收到错误C2797,"成员初始化程序列表或非静态数据成员初始化程序中的列表初始化未实现",请参阅{{3 }}。我想在以下C ++代码中使用一种解决方法,但我无法弄清楚或找出它应该是什么。你能给我一个建议吗?
这是我认为我需要解决方法的地方
class Shape { // deals with color and style, and holds sequence of lines
protected:
Shape{initializer_list<Point> lst}; // add() the Points to this Shape
和点是
#ifndef POINT_GUARD
#define POINT_GUARD
typedef void (*Callback)(void*,void*);
namespace Graph_lib {
struct Point {
int x,y;
Point(int xx, int yy) : x(xx), y(yy) { }
Point() :x(0), y(0) { }
Point& operator+=(Point d) { x+=d.x; y+=d.y; return *this; }
};
inline bool operator==(Point a, Point b) { return a.x==b.x && a.y==b.y; }
inline bool operator!=(Point a, Point b) { return !(a==b); }
}
#endif
非常感谢你的帮助。
答案 0 :(得分:2)
构造函数用括号括起来而不是大括号。
Shape{initializer_list<Point> lst};
变为
Shape(initializer_list<Point> lst);
然后你可以使用花括号来制作一个像这样的对象:
Shape shape{point1, point2, point3 };