У меня есть следующий класс C ++ в Foo.cpp
:
#include <string>
using namespace std;
class Foo {
public:
static int bar;
static void set(int _bar) {
Foo::bar = _bar;
}
static int get() {
return bar;
}
};
int Foo::bar;
Я хочу включить его в свой проект NDK.Я хочу получить доступ к Foo :: bar в моей конечной точке NDK, которая реализует собственный метод, например:
#include "Foo.cpp"
Они оба расположены в одной папке, в одной библиотеке (функция smae add_library
в CMakeLists.текст).Однако, когда я компилирую код, он заявляет, что там было multiple definition of Foo::bar
, и указывает на конечную точку NDK как на место, где статическая переменная была впервые определена.
Я попытался поместить весь класс Foo вПространство имен выглядит так:
namespace {
// The above class Foo here
}
Он скомпилировался, но вышел, как только я запустил приложение.Как это исправить?Спасибо!
У меня есть фон Java, поэтому я ожидаю что-то похожее на "обычную" статическую Java.