only static const integral data members can be initialized within a class

  再写构造函数默认值时出现的错误

 

  '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

 

 

你可能感兴趣的:(struct,Class,编译器)