определить статическую функцию вне класса и получить доступ к статическим значениям .h и .cc файлов - PullRequest
6 голосов
/ 27 октября 2011
 //foo.h
 class Foo 
  {
    private:
      static int number;

    public: 
      static int bar();
  };

//foo.cc
#include "foo.h"

 int Foo::bar() 
 {
   return Foo::number;
 }

это не работает. Я хочу определить статическую функцию вне определения класса и получить доступ к статическому значению.

undefined reference to `Foo::number'

Ответы [ 3 ]

7 голосов
/ 27 октября 2011

Вы только что объявили статический член, вам тоже нужно его определить. Добавьте это в свой файл cpp.

int Foo::number = 0;

Это должно быть хорошее чтение:

В чем разница между определением и декларацией?

2 голосов
/ 27 октября 2011

Вы должны определить Foo::number:

// foo.cc
...
int Foo::number(0);
1 голос
/ 27 октября 2011

Вы объявили Foo :: number, вам нужно добавить определение.В вашем файле cpp Добавьте эту строку

int Foo::number = 0;  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...