再写构造函数默认值时出现的错误
'tag_Point::ty' : only static const integral data members can be initialized within a class
typedef struct tag_Point
{
public:
double x,y,z;
tag_Point(double tx=0;double ty=0;double tz=0)
{
x=tx;
y=ty;
z=tz;
}
}
错误分析: 参数列表应用逗号分开,这里不小心使用了分号
这样的话,编译器将double tx=0; 看作是函数参数
而将 double ty=0; 及double tz=0 ;看作是类定义的成员,并直接对类成员初始化。
这是不允许的, 因为类中成员只有静态成员才能初始化(在类定义之外初始化)。
参考资料:
http://hi.baidu.com/erdosfish/blog/item/17568302807f1f0d4afb511d.html
http://www.programfan.com/club/showpost.asp?id=27522