C - 如何将各处的静态函数称为改变其私有变量
C++ - How can I Call Static Functions from Everywhere, that Alter its Private Variables?
例如,我有一个存储应用程序名称的类:
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;
顺便说一句,您的代码现在可能会编译,但是在阅读之前,您必须为"名称"分配一些值。
相关文章:
- 变量没有改变?通过向量的函数调用
- 在向量内更改变量的值不会改变其在向量外的值
- C++11:具有互斥锁的线程看到原子变量的值发生变化,尽管这是唯一可以改变它的代码
- 为什么我可以改变常量对象中的成员变量,这是返回常量对象函数的结果?
- 标准在哪里定义了可变变量可以改变
- C++11:可变的 lambda 似乎没有改变变量?
- printf() 似乎改变了一个变量
- 为什么我的变量在单独的线程中修改时没有改变?C++/boost
- 为什么 Player.x 和 Player.y 变量没有改变?
- C - 如何将各处的静态函数称为改变其私有变量
- 即使"friend class rect"在平方类中被评论,为什么它要改变矩形类的私有变量?
- 为什么调用 CUDA 内核函数时这个类成员变量没有改变
- 全局变量的顺序会改变C /OpenGL的性能
- 为什么一个函数的末尾有常量这个词,即使它确实改变了一个变量
- 如何在C++中改变超类和子类的变量
- setRoomName不会改变变量roomName
- 不能改变变量的值
- 是否有一种方法可以改变变量在内存中的存储方式(位大小)
- Std::cout改变变量的值
- 使用引用改变变量的地址