这是一个简单的示例,可以在类中使用某些静态字段。
#ifndef FOOCLASS_H_
#define FOOCLASS_H_
#include <string>
class FooClass {
public:
FooClass();
virtual ~FooClass();
std::string getMessage();
void modifier();
static void modifier_st();
static std::string getStaticMessage();
private:
static std::string message_static;
std::string message;
};
和带有方法实现的cpp文件是
#include "FooClass.h"
FooClass::FooClass() {
message = "";
}
FooClass::~FooClass() {
// TODO Auto-generated destructor stub
}
std::string FooClass::getMessage(){
return "Message is:" + message;
}
void FooClass::modifier(){
message += " sample ";
}
void FooClass::modifier_st(){
message_static += " sample static ";
}
std::string FooClass::getStaticMessage(){
return "Message is:" + message_static;
}
#endif /* FOOCLASS_H_ */
我用g ++编译了该代码。
在最后一个方法中出现错误“未定义对`FooClass :: message_static [abi:cxx11]的引用”。
该错误的解释是什么?还有什么其他方法可以开发出最后两种方法?