关于构造函数

[来源:网民提供 | 浏览:960990 | 收藏这网页]

生活小百科网:请看这个程序
这是一个头文件lei.h
#include <iostream.h>
class X
{friend class Y;
public:
void set(int i,int j)
{x=i;
y=j;}
void display()
{cout<<"x="<<x<<" y="<<y<<endl;}
private:
int x;
int y;
};


class Y
{public:
Y(int i,int j)
{a.x=i;
a.y=j;}
void display()
{cout<<"x="<<a.x<<" y="<<a.y<<endl;}
private: X a;};

这是主函数
#include <iostream.h>
#include "lei.h"
void main()
{X b;
b.set(15,20);

b.display();
Y c(16,9);
c.display();
b.display();
}

如果把头文件中的
void set(int i,int j)
{x=i;
y=j;}
改成构造函数X(int i,int j)
{x=i;
y=j;}
把主函数的
X b;
b.set(15,20);
改写成
X b(15,20)
程序就会报一个错,请问为什么会这样 这里专家的回答会让您满意

当你修改完代码后,类X是正确的,但是类Y有成员类,
private: X a;
你必须同样修改好类Y 的构造。

  • 如果您发现我们的文章侵犯了您的权利,请告诉我们.
  • 本站所选文章由网民提供,文章内容观点不代表本站立场.