21xrx.com
2024-11-22 08:01:04 Friday
登录
文章检索 我的文章 写文章
C++实现Person类的设计
2023-07-08 08:50:47 深夜i     --     --
C++ Person类 设计

在面向对象的程序设计中,类是最基本的概念之一,而C++这种面向对象的编程语言,自然也支持类的定义和使用。本文将以一个常见的实例——人的类(Person Class)为例,介绍C++中类的设计和实现。

1. 属性和方法

在设计一个类时,我们首先需要明确这个类应该具有哪些属性和方法。对于人来说,最基本的属性就是姓名、性别和年龄等基本信息,而方法则包括获取这些信息、显示人的信息和计算年龄等操作。

因此,我们可以在Person类的定义中加入如下成员:


class Person {

public:

  string name;

  char gender;

  int age;

public:

  void setInfo(string name, char gender, int age); // 设置人的信息

  void display(); // 显示人的信息

  int calcAge(); // 计算人的年龄

};

在这个定义中,我们为Person类定义了三个属性:name、gender和age,并在类的开头使用public关键字来表示它们对外可见。接着,我们还定义了三个方法:setInfo、display和calcAge,它们分别用于设置人的信息、显示人的信息和计算人的年龄。

2. 方法的实现

在定义了类的属性和方法后,我们还需要对方法进行具体实现。在C++中,我们可以使用类内部定义方法,也可以在类外部实现方法,一般来说,对于较简单的方法,我们可以直接在类内部定义函数:


void setInfo(string name, char gender, int age)

  this->name = name;

  this->gender = gender;

  this->age = age;

void display()

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

  cout << "Gender: " << gender << endl;

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

int calcAge()

  return 2021 - age;

在这些函数中,我们使用this关键字引用了当前对象的属性,以便进行相关操作。例如,在setInfo方法中,我们将传入的参数值赋值给了对象的name、gender和age属性。值得注意的是,这里的name、gender和age属性并不是函数的局部变量,它们只是在本函数中进行了赋值,然后会被保存到类的对象中。

3. 使用Person类

定义好了Person类后,我们可以在程序任何地方使用这个类,例如:


int main() {

  Person person;

  person.setInfo("Tom", 'M', 25);

  person.display();

  cout << "Age: " << person.calcAge() << endl;

  return 0;

}

在这个例子中,我们首先创建了一个Person类的对象person,然后调用了它的setInfo方法来设置人的信息、display方法来显示人的信息,以及calcAge方法来计算人的年龄。最后,我们输出了计算出的年龄。

在使用Person类时,我们总是需要先创建一个类的对象,然后通过这个对象来调用方法或访问属性。如果我们希望多次创建此类的对象,可以使用C++中的构造函数,在创建对象的同时进行初始化。例如:


class Person {

public:

  string name;

  char gender;

  int age;

public:

  Person(string name, char gender, int age);

  void display();

  int calcAge();

};

Person::Person(string name, char gender, int age)

  this->name = name;

  this->gender = gender;

  this->age = age;

void Person::display()

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

  cout << "Gender: " << gender << endl;

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

int Person::calcAge()

  return 2020 - age;

int main() {

  Person person1("Tom", 'M', 25);

  person1.display();

  cout << "Age: " << person1.calcAge() << endl;

  Person person2("Mary", 'F', 30);

  person2.display();

  cout << "Age: " << person2.calcAge() << endl;

  return 0;

}

在这个例子中,我们为Person类定义了一个带有参数的构造函数,该函数在创建对象时进行初始化。通过这种方式,我们不再需要使用setInfo方法来初始化对象的属性,而可以在创建对象时直接传入参数。

以上是C++中实现Person类的设计和实现方法,大家也可以根据自己的需要为此类添加其他的属性和方法。总之,类是C++中面向对象编程的核心概念,熟练掌握类的设计和实现对于进一步学习C++编程语言具有重要意义。

  
  

评论区

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