C - 如何将各处的静态函数称为改变其私有变量



例如,我有一个存储应用程序名称的类:

class Storage {
public:
    static char* getName();
private:
    char* name;
}

我想从例如在main()函数中访问它:

#include <iostream>
using namespace std;
int main() {
char* name;
Storage s;
name = s.getName();
cout << name << endl;
return 0;
}

您知道,我无法访问它,因为静态方法需要使用静态变量。当我尝试制作"名称"私有静态时,我会发现链接器错误。我不想声明公共静态变量,因为我想封装它。我想使其静态,因为我想从代码的每个部分调用该方法。

考虑一下,该程序具有一个全局名称,必须封装,您想从代码的每个部分访问名称。你该怎么办?在Java,私人静态变量是合法的。但是在C 中,这很令人困惑。

如果在标题文件中声明了类

char* Storage::name;

顺便说一句,您的代码现在可能会编译,但是在阅读之前,您必须为"名称"分配一些值。

最新更新