(C++) 这个定义怎么错啊?

来源:百度知道 编辑:UC知道 时间:2024/06/18 10:55:33
class haspri
{
public:
haspri():val(2),point(&val){}
haspri(int *xx,int hh):point(new int(*xx)),val(hh){}
haspri(const haspri &zz):point(new int (*zz.point)),val(zz.val){}
~haspri(){cout<<"删除成功!"<<endl;delete point;}
void set_point(int *xxs)
{
*point=*xxs;
}
void set_val(int ff)
{
val=ff;
}
int get_point()
{
return *point;
}
void display()
{
cout<<*point<<endl;
cout<<val<<endl;
}
int *point;
int val;
private:

};
haspri& haspri::operator=(const haspri &s)
{ //箭头指向这个
*point= *(s.point);
val=s.val;
return *this;
}

错误信息:
class haspri
{
public:
haspri():val(2),point(&val){}
haspri(int *xx,int hh):point(new int(*xx)),val(hh){}
haspri(const haspri &zz):point(new int (*zz.point)),val(zz.val){}
~haspr

haspri& haspri::operator=(const haspri &s)

这个 函数不能只在类声明的外部定义,必须先在类的内部声明,形如:
public:
haspri& operator=(const haspri &s);

靠。哪有这么搞的。类里必须声明的,然后外面定义。