对象组合:如果一个类包含了另一个类的对象,那么它可以通过该对象访问另一个类的公有成员。举例说明C++
时间: 2023-08-15 22:05:26 浏览: 38
假设我们有两个类,一个是Person类,另一个是Address类。Person类中需要包含Address类的对象以表示一个人的住址信息。我们可以通过以下代码来实现对象组合:
```c++
class Address {
private:
string street;
string city;
string state;
string zip;
public:
// 构造函数和其他成员函数
};
class Person {
private:
string name;
int age;
Address address; // Address类的对象
public:
// 构造函数和其他成员函数
void printAddress() {
cout << "Address: " << address.street << ", " << address.city << ", " << address.state << " " << address.zip << endl;
}
};
```
在Person类中声明一个Address类的对象,我们就可以在Person类的成员函数中通过该对象访问Address类的公有成员,比如printAddress()函数就可以打印出Person类中包含的Address类的信息。这就是对象组合的一个简单的例子。
相关问题
在不同的类中,可以怎么访问另一个类中的私有成员变量?
私有成员变量只能在类内部访问,不能在类外部直接访问。如果你需要在一个类中访问另一个类的私有成员变量,可以通过以下两种方式:
1. 使用公有的成员函数:在另一个类中提供一个公有的成员函数来获取或修改私有成员变量的值。这样,你就可以通过调用该函数来访问另一个类的私有成员变量。
2. 使用友元函数:在另一个类中声明当前类为友元,这样当前类就可以直接访问另一个类的私有成员变量。但是,这种方式会破坏封装性,不建议频繁使用。
需要注意的是,以上两种方式都只适用于在类内部访问另一个类的私有成员变量,不能在类外部使用。
一个类成员函数怎么才能调另一个类的公有成员函数
可以使用类的对象来调用另一个类的公有成员函数,例如:
class ClassA {
public:
void funcA() {
ClassB b;
b.funcB();
}
};
class ClassB {
public:
void funcB() {
// do something
}
};
在 ClassA 的成员函数 funcA 中,创建了一个 ClassB 的对象 b,并通过该对象调用了 ClassB 的公有成员函数 funcB。