我现在正在单独的头文件和cpp文件中创建一个名为person的类。 对于其中一个功能,我遇到了这个错误:
该声明与“ Person :: stat Person :: getStat()”不兼容(在“ C:...”的第26行声明)
(不是确切的目录,但您知道了)
这是头文件中的代码:
baseurl
这是cpp文件中的代码:
#pragma once
#include <string>
#include <iostream>
class Person
{
public:
struct stat {
int str;
int end;
int dex;
int intel;
};
Person();
~Person();
//properties
stat getStat();
};
我在使用getStat()函数时遇到了错误。我曾尝试在两个文件中以及仅在头文件中包含string和iostream标头,因为类似的帖子建议这样做。但这两个都不能解决我的问题。
答案 0 :(得分:2)
应该是
Person::stat Person::getStat() {
}
您的版本声明了与struct stat
不同的新Person::stat
。
答案 1 :(得分:1)
struct stat Person::getStat()
是一种返回属于全局命名空间而不是stat
的{{1}}的方法:
Person
请注意,这里没有Person::stat Person::getStat()
(以避免声明一个)。在C ++中,在声明类型之后,我们就不再使用struct
。