当我尝试将类放入标头中时,当我使用类中的字符串进行编译时,我收到找不到成员的错误

When I try to put a class into a header I get the error of member not found when I compile with strings in the class

本文关键字:编译 成员 找不到 字符串 错误      更新时间:2023-10-16

这是代码:

类.h

#ifndef CLASSES_H
#define CLASSES_H
// Team Class
class Team {
public: 
    string title, initials;
};
// End
// Player Class
class Player {
public:
    int skill, cost;
    string name;
};
// End
// Coach Class
class Coach {
    int cash, cost, players;
public:
    string name;
    void set_values (int, int);
    int total (void) {return (cash - cost);};
};
// End
#endif

类.cpp

#include "Classes.h"
// Set Total Cash for Coach
void Coach::set_values (int a, int b) {
    cash = a;
    cost = b;
}
// End

主.cpp

#include <iostream>
#include <string>
#include "classes.h"

当我编译时,它找不到首字母成员或名称成员,即字符串。为什么以及如何解决此问题。

main.cpp:22: error: ‘class Player’ has no member named ‘name’
main.cpp:28: error: ‘class Coach’ has no member named ‘name’
main.cpp:29: error: ‘class Coach’ has no member named ‘name’
main.cpp:30: error: ‘class Player’ has no member named ‘name’
main.cpp:35: error: ‘class Team’ has no member named ‘title’
main.cpp:36: error: ‘class Team’ has no member named ‘title’
main.cpp:38: error: ‘class Team’ has no member named ‘initials’
main.cpp:39: error: ‘class Team’ has no member named ‘initials’
main.cpp:40: error: ‘class Player’ has no member named ‘name’
main.cpp:40: error: ‘class Team’ has no member named ‘title’
main.cpp:41: error: ‘class Team’ has no member named ‘initials’
main.cpp:41: error: ‘class Player’ has no member named ‘name’
main.cpp:41: error: ‘class Coach’ has no member named ‘name’

或在 main.cpp:9 中包含的文件中:

classes.h:7: error: ‘string’ does not name a type
classes.h:15: error: ‘string’ does not name a type
classes.h:23: error: ‘string’ does not name a type

请帮忙!我是新手,所以这可能是我无法做到或简单的修复。

您需要

classes.h文件中#include <string>并将string变量声明更改为std::string。例如:

class Team {
public: 
std::string title, initials;
};
您需要

使用std::string完整的限定条件,并#include <string>到您的头文件。