21xrx.com
2024-12-29 04:41:15 Sunday
登录
文章检索 我的文章 写文章
C++实验——类与对象(三)
2023-06-26 09:26:13 深夜i     --     --
C++实验 类与对象 第三部分 面向对象编程 数据封装

本次实验是C++实验的第三部分——类与对象的实验。在前两部分实验中,我们已经学习到了C++中类的基本概念以及如何在程序中定义和使用类。在本次实验中,我们将继续探索类和对象。

在实验中,我们将创建一个名为“Person”的类,该类将包含一个人的基本信息,例如姓名、年龄和地址等。我们将使用构造函数和析构函数创建和销毁Person对象。我们还将实现一些成员函数,例如显示人的基本信息和更改他们的地址。

在本次实验中,我们将学习以下内容:

1. 创建类成员变量和成员函数

2. 使用构造函数和析构函数

3. 实现类的成员函数

4. 如何使用类的对象

首先,在我们开始编码之前,我们需要规划一下我们的类。在这个例子中,我们需要存储一个人的基本信息,例如姓名、年龄和地址。根据这个需求,我们可以定义以下类:

class Person {

  private:

   std::string name;

   int age;

   std::string address;

  public:

   Person(std::string name, int age, std::string address);

   ~Person();

   void display();

   void change_address(std::string new_address);

}

在这个类中,我们定义了三个私有成员变量:姓名(name)、年龄(age)和地址(address)。我们还定义了一个公共构造函数,它将我们需要存储的基本信息作为参数传递。我们还定义了一个析构函数,它会在对象销毁时自动调用。

接下来,我们定义了两个公共成员函数:display()和change_address()。display()函数将姓名、年龄和地址打印到控制台上,而change_address()函数将允许我们更改对象的地址。

我们已经定义了我们的类,现在让我们开始实现类的成员函数。首先,让我们定义构造函数和析构函数:

//构造函数

Person::Person(std::string name, int age, std::string address)

  this->name = name;

  this-> age = age;

  this->address = address;

//析构函数

Person::~Person()

  // 对象销毁时

接下来,我们实现display()函数:

void Person::display()

  std::cout << "Name: " << name << std::endl;

  std::cout << "Age: " << age << std::endl;

  std::cout << "Address: " << address << std::endl;

最后,我们实现change_address函数:

void Person::change_address(std::string new_address)

  this->address = new_address;

现在,我们已经定义和实现了我们的类。在下面的示例中,我们将使用类来创建对象,并调用对象的成员函数:

int main() {

  // 创建一个Person对象

  Person person1("Alice", 23, "Chengdu");

  // 调用对象的display函数

  person1.display();

  // 调用对象的change_address函数

  person1.change_address("Shanghai");

  // 再次调用对象的display函数,以检查地址是否已更改

  person1.display();

  return 0;

}

在上面的示例中,我们创建了一个名为person1的Person对象,并使用构造函数将姓名、年龄和地址传递给对象。我们还调用了对象的display()函数来显示人的基本信息。接着,我们调用了change_address()函数来更改对象的地址。最后,我们再次调用dispay()函数来检查地址是否已更改。

这就是我们本次实验的全部内容。我们已经学习了创建类和对象,以及如何实现和使用成员函数。在C++编程中,类和对象是非常重要的概念。通过学习这些概念,我们可以更好地理解面向对象编程,并能够编写更高效、更健壮的程序。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复