类的成员是一个类,怎么获取这个成员的变量

类的成员是一个类,怎么获取这个成员的变量

在C++中,当一个类的成员是另一个类的对象时,我们可以通过该成员对象的公有接口(即其成员函数)来访问其变量。这通常涉及到创建包含类(也称为外部类或容器类)的对象,然后通过该对象来访问其成员对象(也称为内部类或嵌套对象)的公有成员函数。

下面是一个简单的例子,展示了如何访问一个类的成员对象的变量:

 

cppCopy Code

#include <iostream> #include <string> // 内部类(或成员类) class Address { private: std::string street; std::string city; public: // 构造函数 Address(const std::string& str, const std::string& c) : street(str), city(c) {} // 获取街道名称 std::string getStreet() const { return street; } // 获取城市名称 std::string getCity() const { return city; } }; // 外部类(或容器类) class Person { private: std::string name; Address address; // 成员对象是Address类的实例 public: // 构造函数 Person(const std::string& n, const Address& addr) : name(n), address(addr) {} // 获取人的名称 std::string getName() const { return name; } // 获取街道名称(通过成员对象) std::string getStreet() const { return address.getStreet(); } // 获取城市名称(通过成员对象) std::string getCity() const { return address.getCity(); } }; int main() { // 创建Address类的对象 Address addr("123 Main St", "Anytown"); // 创建Person类的对象,并将Address对象作为成员 Person person("John Doe", addr); // 访问Person类的成员变量 std::cout << "Name: " << person.getName() << std::endl; std::cout << "Street: " << person.getStreet() << std::endl; std::cout << "City: " << person.getCity() << std::endl; return 0; }

在这个例子中:

  1. Address类是一个内部类,它有两个私有成员变量(streetcity)以及相应的公有成员函数来访问这些变量。
  2. Person类是一个外部类,它有一个私有成员变量(name)和一个Address类的成员对象(address)。
  3. Person类提供了公有成员函数来访问其自己的成员变量以及Address成员对象的变量。
  4. main()函数中,我们创建了一个Address类的对象和一个Person类的对象,并通过Person类的对象来访问Address成员对象的变量。

通过这种方式,我们可以保持封装性,同时允许外部类访问其成员对象的公有接口。这是面向对象编程中常用的技术,有助于维护代码的清晰性和可维护性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值