将数组初始化为我的类c ++

时间:2015-02-13 22:17:38

标签: c++ c++11

我,这堂课:

class Foo {
private:
    Objet grid;
    static Player *players[2];
public:
    Foo(int len, string ps1, string ps2);
};

当我这样做时:

Foo::Foo(int len, string ps1, string ps2){
    grid.setLen(len);
    players[0] = new Ange(ps1, grid.getLen()/2, grid.getLen/2);
    players[1] = new Demon(ps2);
}

Playerclass abstractAnge et Demon的{​​{1}} class

编译时我将这个错误发送到xCodes

  

架构x86_64的未定义符号:   " Partie :: joueurs",引自:   Partie.o中的Partie :: Partie(int,std :: __ 1 :: basic_string,std :: __ 1 :: allocator>,std :: __ 1 :: basic_string,std :: __ 1 :: allocator>)   ld:找不到架构x86_64的符号   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

请帮助我!!!

请原谅我的英语我是法国人

1 个答案:

答案 0 :(得分:1)

静态成员变量仅声明,您还需要定义

最简单的方法是在某个源文件中添加:

Player *Foo::players[2];

虽然您不应该在构造函数中初始化静态成员变量,但如果您创建两个(或更多)Foo个对象,您会怎么想?