定义一个Girl类和一个Boy类,这两个类中都有表示姓名、年龄的私有数据成员,都要定义构造函数、析构函数、输出成员变量信息的公有成员函数。 (1)在Girl类中定义成员函数VisitBoy(Boy &),并声明为Boy类的友元成员,从而访问Boy类的私有成员。 (2)删除Girl类的成员函数VisitBoy(Boy &),定义一个普通函数 VisitBoyGirl(Boy &,Girl &),作为以上两个类的友元,通过调用该函数输出Boy和Girl的信息。
时间: 2023-05-27 12:03:05 浏览: 93
boy),用于访问并输出Boy对象的姓名和年龄。
(2)在Boy类中定义成员函数VisitGirl(Girl girl),用于访问并输出Girl对象的姓名和年龄。
Girl类定义如下:
```
class Girl {
private:
string name;
int age;
public:
Girl(string n, int a) : name(n), age(a) {}
~Girl() {}
void printInfo() {
cout << "Name: " << name << ", Age: " << age << endl;
}
void VisitBoy(Boy boy);
};
```
Boy类定义如下:
```
class Boy {
private:
string name;
int age;
public:
Boy(string n, int a) : name(n), age(a) {}
~Boy() {}
void printInfo() {
cout << "Name: " << name << ", Age: " << age << endl;
}
void VisitGirl(Girl girl);
};
```
在Girl类中定义的VisitBoy函数如下:
```
void Girl::VisitBoy(Boy boy) {
cout << "Visited Boy: ";
boy.printInfo();
}
```
在Boy类中定义的VisitGirl函数如下:
```
void Boy::VisitGirl(Girl girl) {
cout << "Visited Girl: ";
girl.printInfo();
}
```
注意,以上两个函数都是传入对象的副本,因此访问的是原始对象的副本,不会改变原始对象本身的属性。如果需要改变原始对象的属性,则应该传入指向对象的指针或引用。