急~~c++的类问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:33:50
#include <iostream.h>
class point
{
public :

void initp(float xx=0,float yy=0)
{x=xx;y=yy;}
private :
float x,y;
};
class pp
{
public :

void initp(float xx=0,float yy=0)
{point ::initp (xx,yy);}//为什么这边写构造函数就可以,这样写就错了???
private :
float x,y;
};
void main()
{
pp x;
x.initp(1,2);
}
请大家解答下???谢谢

老大 你的程序写的有问题!在pp类中你用到point类里的函数 但是调用格式错了啊 应该是point:initp(xx,yy)才对啊!我修改后的如下:
#include <iostream.h>
class point
{
public :

void initp(float xx=0,float yy=0)
{x=xx;y=yy;}
private :
float x,y;
};
class pp
{
public :

void initp(float xx=0,float yy=0)
{point : initp (xx,yy);}//这句你多写了:号 属于调用格式问题建议看看关于类的继承方面问题
private :
float x,y;
};
void main()
{
pp x;
x.initp(1,2);
}

你调用这个函数point ::initp (xx,yy)就是在执行{x=xx;y=yy;}这行代码,但你的Point类的成员变量x和y是私有的,外部是无法访问的,所以就报错了塞

我觉得,应该是:initp函数不是静态函数,所以不能在类外那样调用。

point ::initp (xx,yy);
这样写的只能是静态函数,不能是成员函数(成员函数属于某个对象)

解答完毕!你要问什么呢?