gpt4 book ai didi

c++ - 尝试在另一个类的头文件中使用对象,出现 “redefinition of class”错误

转载 作者:行者123 更新时间:2023-12-02 10:57:21 26 4
gpt4 key购买 nike

我目前正在尝试在School.hpp文件中定义一个“学校”类。 School类的一部分是称为“名册”的Student对象的 vector 。如果我#在School.hpp中包含“Student.hpp”,则编译器将引发“重新定义“类(class)学生””错误。如果我不包括Student.hpp,则它将为std::vector 引发“此范围内未声明'Student'”错误。

我不知道在哪里重新定义Student类,因为我只有一次Student的类定义,而这在Student.hpp文件中。

// School.hpp
#include <vector>
#include "Student.hpp"

class School
{
// instance variables
std::vector<Student> roster;

我是C++的新手,正在从事一些旧的学校项目,因此,如果这是我的愚蠢错误,我深表歉意。

最佳答案

似乎您没有告诉预处理器头文件必须被包含一次。

在每个头文件('* .hpp')的顶部,添加以下行:

#pragma once

有关更多信息,请参见 this article

关于c++ - 尝试在另一个类的头文件中使用对象,出现 “redefinition of class”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58786076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com