gpt4 book ai didi

c++ - 对象未在范围内声明 (std::map)

转载 作者:行者123 更新时间:2023-11-30 05:22:26 24 4
gpt4 key购买 nike

我有一个带有名为学生的 map 的类(class),我想在其中存储另一个类(class)的实例。我收到以下错误消息:

“学生”未在此范围内声明

std::map<int, Student> students;

这是我的代码的相关部分:

APP.H

#include <iostream>
#include <string>
#include <map>

#include "student.h"

class App
{
public:
void AddStudent();

protected:
std::string SName;
std::string SEmail;

std::map<int, Student> students;
};

APP.CPP

#include <string>
#include <iostream>

#include "app.h"
#include "student.h"

void App::AddStudent()
{
std::cin >> SName;
std::cin >> SEmail;
Student Stu(SName, SEmail);
students.insert(std::make_pair(someID, Stu));
}

学生.H

#include <string>
#include <iostream>

#include "app.h"
#include "test.h"

class Student
{
public:
Student() { }
Student(std::string studentName, std::string studentEmail);
int studentId;

std::string GetStudentName() const;
std::string GetStudentEmail() const;
void SetStudentName(std::string sn);
void SetStudentEmail(std::string se);

private:
static int tempId;

std::string studentName;
std::string studentEmail;
};

如果我将我的 map 复制到 main,我不会收到此错误,但是当我尝试插入实例时我无法访问它。我宁愿不要在 main 中有这张 map 。

最佳答案

student.h包含app.h,但是app.h包含student.h

在您的情况下,您可以从 student.h 中删除 #include "app.h",因为不需要它。

关于c++ - 对象未在范围内声明 (std::map),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39676538/

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