C++对象数组与成员对象

在C++中,对象数组和成员对象是面向对象编程中常见的概念,它们各自具有不同的用途和特性。

对象数组

对象数组是同一类型对象的集合,这些对象在内存中连续存储。你可以通过数组索引来访问数组中的每个对象。对象数组在需要管理多个同类型对象时非常有用,比如存储一系列的学生信息、员工记录等。

示例

#include <iostream>  
using namespace std;  
  
class Student {  
public:  
    string name;  
    int age;  
  
    Student(string n, int a) : name(n), age(a) {}  
  
    void display() {  
        cout << "Name: " << name << ", Age: " << age << endl;  
    }  
};  
  
int main() {  
    Student students[3] = {  
        Student("Alice", 20),  
        Student("Bob", 22),  
        Student("Charlie", 21)  
    };  
  
    for(int i = 0; i < 3; i++) {  
        students[i].display();  
    }  
  
    return 0;  
}

在这个例子中,Student类型的对象数组students被创建并初始化了三个Student对象。然后,通过遍历数组并调用每个对象的display成员函数来显示它们的信息。

成员对象

成员对象(也称为组合或内嵌对象)是另一个类的对象,它被声明为某个类的成员变量。这允许一个类通过其成员对象来访问另一个类的成员(包括公有、受保护和私有成员,如果后者是友元)。成员对象使得类能够复用其他类的功能,而无需重新实现这些功能。

示例

#include <iostream>  
using namespace std;  
  
class Address {  
public:  
    string street;  
    string city;  
  
    Address(string s, string c) : street(s), city(c) {}  
  
    void display() {  
        cout << "Street: " << street << ", City: " << city << endl;  
    }  
};  
  
class Person {  
public:  
    string name;  
    Address addr; // 成员对象  
  
    Person(string n, string s, string c) : name(n), addr(s, c) {}  
  
    void display() {  
        cout << "Name: " << name << endl;  
        addr.display(); // 访问成员对象的成员函数  
    }  
};  
  
int main() {  
    Person p("John Doe", "123 Elm St", "Springfield");  
    p.display();  
  
    return 0;  
}

在这个例子中,Person类包含了一个Address类型的成员对象addr。Person的构造函数接受额外的参数来初始化这个成员对象。Person的display成员函数调用Address的display成员函数来显示地址信息。这种方式使得Person类能够复用Address类的功能,而无需重新编写显示地址的代码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值