定义类X、Y、Z,函数h(X t ),满足:类X有私有成员i,一个带参的构造函数用来给i初始化和成员函数show( )用来输出i的值。Y的成员函数g(X t)是X的友元函数,实现对X的成员i加1;类Z是类X的友元类,其成员函数f(X t)实现对X的成员i加5;函数h(X t)是X的友元函数,实现对X的成员i加10。在文件中定义和实现类,在另一个文件中实现main()函数,main()函数中要创建类X、Y、Z各自的对象x,y,z用来测试类
时间: 2023-06-09 07:05:47 浏览: 145
在文件中定义和实现类:
//定义类X
class X {
private:
int i; //私有成员i
public:
X(int val) { i = val; } //带参构造函数用来给i初始化
void show() { cout << i << endl; } //成员函数show( )用来输出i的值
friend void h(X t); //函数h(X t)是X的友元函数
};
//定义类Y
class Y {
public:
void g(X t) { t.i++; } //成员函数g(X t)是X的友元函数,实现对X的成员i加1
};
//定义类Z
class Z {
public:
void f(X t) { t.i += 5; } //成员函数f(X t)实现对X的成员i加5
};
//函数h(X t)实现对X的成员i加10
void h(X t) { t.i += 10; }
在另一个文件中实现main()函数,main()函数中要创建类X、Y、Z各自的对象x,y,z用来测试类
#include <iostream>
using namespace std;
int main() {
X x(5); //创建对象x
Y y; //创建对象y
Z z; //创建对象z
x.show(); //输出i的初始值为5
y.g(x); //对x的成员i加1
z.f(x); //对x的成员i加5
h(x); //对x的成员i加10
x.show(); //输出i的值为21
return 0;
}
阅读全文