C++ 为什么我可以预编译c';父亲的托尔,但不是他的属性?cpp
早上好。 当我试图预编译时(我不知道这个的真名…),父亲c'tor这样说:C++ 为什么我可以预编译c';父亲的托尔,但不是他的属性?cpp,c++,C++,早上好。 当我试图预编译时(我不知道这个的真名…),父亲c'tor这样说: Point_3d(int _x, int _y, int _z) :Point_2d(_x, _y, _z), z(_z+100){}; 它起作用了。 但当我准备这样做时: Point_3d(int _x, int _y, int _z) :Point_2d(_x, _y, _z), _x(4), z(_z+100){}; 事实并非如此。(参数'_x'属于父参数。) 还有一个小问题: 为什么我不能使用“=”预编译,而
Point_3d(int _x, int _y, int _z) :Point_2d(_x, _y, _z), z(_z+100){};
它起作用了。
但当我准备这样做时:
Point_3d(int _x, int _y, int _z) :Point_2d(_x, _y, _z), _x(4), z(_z+100){};
事实并非如此。(参数'_x'属于父参数。)
还有一个小问题:
为什么我不能使用“=”预编译,而我必须使用“()”?
谢谢 假设\ux(4)
引用Point\u2D
类的成员,则只能由所属类初始化,而不能由派生类初始化
初始化器列表可以包含基类和当前类的成员,而不是基类的成员
但我不会
Point_3d(int _x, int _y, int _z) :Point_2d(4, _y, _z), z(_z+100){};
___________________________________________^
做你想做的事?首先,我建议你做两件事。首先给出完整的代码,然后请检查预编译术语。 如果我猜,x和_y是基类成员,z是派生类成员
Point_3d(int x,int y,int z):Point_2d(x,y,z),z(z+100){}代码>
Point_3d(int x,int y,int z):Point_2d(x,y,z),x(4),z(z+100){代码>
Point_3d(intx,inty,intz):Point_2d(x,y,z),z(z+100){ux=2;}