关于网友提出的“ C++小白求助公用字符串初始化方法”问题疑问,本网通过在网上对“ C++小白求助公用字符串初始化方法”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: C++小白求助公用字符串初始化方法描述:
学习C++中,很是痛苦
我想实现一个接口类,里面就放几个字符串常量,方便别的类直接调用
Java里面实现很简单,但是C++里面我就不会了
声明如下:
#ifndef NOTIFICATIONNAME_H
#define NOTIFICATIONNAME_H
class NotificationName{
public:
static const char* rest;
static const char* writeCode;
static const char* writeArticle;
};
#endif
在cpp里面我就直接这么写,编译错误
#include "NotificationName.h"
NotificationName::rest = "wantToRest";
NotificationName::writeCode = "wantToWriteCode";
NotificationName::writeArticle = "wantToWriteArticle";
求大神帮忙指点一下小白吧
解决方案1:
对于static const常量,如果是整型的话,可以在类中直接赋值,其他的只能在类外定义了。。。。
解决方案2:class MyTestClass
{
public:
MyTestClass() : m_ciInt(1), m_csStr("MyStr") // const成员变量,在ctor参数列表中初始化
{}
public:
const int m_ciInt;
const String m_csStr;
static int m_siInt;
static String m_ssStr;
const static int m_csiInt;
const static String m_cssStr;
};
int MyTestClass::m_siInt = 1; // static成员变量,在外部定义
String MyTestClass::m_ssStr = "MyStr"; // static成员变量,在外部定义
const int MyTestClass::m_csiInt = 1; // const static/static const成员变量,在外部定义
const String MyTestClass::m_cssStr = "MyStr"; // const static/static const成员变量,在外部定义