多文件数据共享

Multiple files data sharing

data.h http://pastebin.com/5mLVqEa3
main.cpphttp://pastebin.com/NGYbGuuT

我正在尝试制作一个单独的文件来保存数据,以便我的代码看起来更漂亮并且更易于管理和阅读。有代码,当我编译它时,它显示错误 "anes11 does not name a type" 然后是 bnes11 以及我输入数据的每一行的所有错误(第 25、26、27、30、31、32 等行)。当我将数据移动到 main.cpp 到 int main() 中时,它编译得很好并输出 anes11.ime。当我将输入数据的区域(第 25-27 行)放在大括号中时,我会收到错误 "Unqualified identifier before {" 或类似的错误。

你不能在全局范围内(任何函数之外)做任何语句,你只能做初始化.

所以我建议你为你的结构创建构造函数,并在其中进行初始化。

所以而不是例如

extern Ucenik anes11;
anes11.ime="Anes11";
anes11.prezime="Sprecic";
anes11.ocjene.push_back(4);anes11.ocjene.push_back(2);anes11.ocjene.push_back(3);

你的头文件中有声明

extern Ucenik anes11;

然后在一个源文件中(当你的项目中只有一个源文件时很简单,当你开始使用多个源文件时至关重要):

Ucenik anes11("Anes11", "Sprecic", 4, 2, 3);

然后你可以用构造函数定义结构,比如

struct Ucenik{
    string ime;
    string prezime;
    vector<int> ocjene;

    // Constructor
    Ucenik(const std::string& i, const std::string& p,
           const int i1, const int i2, const int i3)
        : ime{i}, prezime{p}, ocjene{i1, i2, i3}
    { }
};