21xrx.com
2024-11-05 17:26:06 Tuesday
登录
文章检索 我的文章 写文章
C++:在一个头文件中实现多个类
2023-07-04 13:00:55 深夜i     --     --
C++头文件 多个类 实现

C++是一种高级编程语言,它的特点是面向对象、高效、可靠性高。在C++中,一个类通常定义在一个头文件中,但也有时候需要在一个头文件中实现多个类。在本文中,我们将简单介绍在一个头文件中实现多个类的方法。

首先,创建头文件,然后在头文件中声明需要实现的多个类。例如,我们可以声明两个类:Person类和Student类,如下所示:


class Person {

public:

  Person(std::string name);

  void printName();

private:

  std::string mName;

};

class Student {

public:

  Student(std::string name, std::string id);

  void printInfo();

private:

  std::string mName;

  std::string mId;

};

在上述代码中,我们声明了两个类:Person类和Student类。Person类包含一个构造函数和一个打印名称的函数,Student类包括一个构造函数和一个打印个人信息的函数。

接下来,我们要在头文件中实现这些类。同样地,我们可以在头文件中实现这些类的函数,如下所示:


Person::Person(std::string name)

  mName = name;

void Person::printName()

  std::cout << "My name is " << mName << std::endl;

Student::Student(std::string name, std::string id)

  mName = name;

  mId = id;

void Student::printInfo()

  std::cout << "Student name: " << mName << std::endl;

  std::cout << "Student ID: " << mId << std::endl;

在上述代码中,我们在头文件中实现了Person类和Student类的函数。我们可以看到,实现这些函数的方法与单独实现类的函数的方法相同。

最后,我们可以在另一个源文件中包含头文件,并使用这些类和函数。例如,我们可以在一个main.cpp源文件中使用Person类和Student类:


#include "Person.h"

int main() {

  Person p("Tom");

  Student s("Jack", "123456");

  p.printName();

  s.printInfo();

  return 0;

}

恭喜,您已成功在一个头文件中实现了多个类。使用完整的代码可以在此处找到:


#include <iostream>

#include <string>

class Person {

public:

  Person(std::string name);

  void printName();

private:

  std::string mName;

};

Person::Person(std::string name)

  mName = name;

void Person::printName()

  std::cout << "My name is " << mName << std::endl;

class Student {

public:

  Student(std::string name, std::string id);

  void printInfo();

private:

  std::string mName;

  std::string mId;

};

Student::Student(std::string name, std::string id)

  mName = name;

  mId = id;

void Student::printInfo()

  std::cout << "Student name: " << mName << std::endl;

  std::cout << "Student ID: " << mId << std::endl;

int main() {

  Person p("Tom");

  Student s("Jack", "123456");

  p.printName();

  s.printInfo();

  return 0;

}

  
  

评论区

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