静态私有成员初始化重置?

问题描述

情况是这样的,在一个类里有个私有静态成员,也有个静态方法判断它为null则赋值,已赋值过就不赋值了,现在遇到个问题,程序运行过程中已调用这个静态方法,即私有静态成员已不为null,但确实在某些时候我要重新赋值,注意那个静态方法是无参的,没办法将那个私有成员重置回null,有没办法不修改那个方法的逻辑,让私有静态成员初始化为null,就像刚加载程序集还没调用静态方法的时候那样子?

解决方案

解决方案二:
再加一个静态方法,让那个静态变量归零,不就行了或者重写静态方法,里面做判断,在XXX条件下,是Null;在YYYY条件下是非null的值
解决方案三:
引用1楼From_TaiWan的回复:

再加一个静态方法,让那个静态变量归零,不就行了或者重写静态方法,里面做判断,在XXX条件下,是Null;在YYYY条件下是非null的值

现在就是不方便加方法或重写,只想有没办法在运行时重置静态成员回最初状态的
解决方案四:
不方便,那就说明你根本没有源代码。你根本没有源代码,何必还纠结这个呢?

时间: 2024-09-03 15:24:01

静态私有成员初始化重置?的相关文章

mfc-MFC 静态数据成员初始化

问题描述 MFC 静态数据成员初始化 要用到AfxBeginThread(threadproc,.....),函数threadproc()必须为静态函数,我使用这个函数需要调用 如下静态成员 但是我只能在 .cpp文件外部初始化为空.请问应该在哪给他们赋上后面的值,还是我的思路有问题. pStc=(CStatic *)GetDlgItem(IDC_STATIC); pStc->GetClientRect(&rect): pDC=pStc->GetDC(); hDC=pDC->Ge

c++-C++ 类模板的静态私有内部类如何初始化?

问题描述 C++ 类模板的静态私有内部类如何初始化? 搞了一个通宵了,百度过很多资料,始终解决不了这个问题.令我开始对C++的繁琐感到厌倦了.为了编译通过这么一个小问题,折腾这么长时间,真心觉得这种语言繁琐,刻板,效率低,过时了,让我这个6年的C++粉开始有点失望-- #ifndef __SINGLETON__H__ #define __SINGLETON__H__ template <typename T> class Singleton { public: static T* GetIns

c++-C++类的私有成员中定义了一个数组,怎么在构造函数中初始化这个数组?

问题描述 C++类的私有成员中定义了一个数组,怎么在构造函数中初始化这个数组? 写了这样一个类: class Base{ private: int r[MAX_SIZE]; int length; public: Base() { r[MAX_SIZE] = {1,2,0,5,8,9,7,3,6,4}; //编译的时候在这边出错 length = 10; } void swap_data(int,int); void Show(const Base &ob); friend int Bubble

JavaScript中的私有成员_javascript技巧

JavaScript是世界上是被误解得最厉害的编程语言.有些人认为它不具备"信息隐藏"的能力,因为JavaScript的对象没有私有变量和方法.这是误解.JavaScript对象可以拥有私有成员,下面我们来看看怎么做.(SharkUI.com注:JavaScript并不是真正拥有私有.公有等等OOP的特性,这篇译文中提到的这些私有.公有.特权等特性,是利用JavaScript的其他特性(参看本文的"闭包"一节)"模拟"出来的.感兴趣的话可以搜索相

C++静态数据成员实现

静态数据成员是在一个类中用关键字static声明的数据成员.在C++中,一般使用静态成员来代替C语言的全局变量,以达到数据共享.C和C++的全局变量有一定的局限性,可以任意被修改,也容易和其它的变量名冲突,故在C++中,一般不使用全局变量. 静态数据成员必须进行初始化,初始化应在类体外进行,静态数据成员也可以引用,但不能引用私有数据部分. 接下来看一个例子: #include <iostream> #include <cstring> using namespace std ; c

Javascript私有成员的实现方式

我之前买过一本书<Javascript高级程序设计> Nicholas C.Zakas 著 总体来讲这本书还是可以的,但看完这本书还留了几个问题一直困扰着我,如js中私有变量的实现,prototype等,经过自己一系列测试,现在终于弄明白了. 很多书上都是说,Javascript是不能真正实现Javascript私有成员的,因此在开发的时候,统一约定 __ 两个下划线开头为私有变量. 后来,发现Javascript中闭包的特性,从而彻底解决了Javascript私有成员的问题. functio

C++类静态数据成员与类静态成员函数

在没有讲述本章内容之前如果我们想要在一个范围内共享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们如何才能在类范围内共享数据呢? 这个问题便是本章的重点: 声明为static的类成员或者成员函数便能在类的范围内共同享,我们把这样的成员称做静态成员和静态成员函数. 下面我们用几个实例来说明这个问题,类的成员需要保护,通常情况下为了不违背类的封装特性,我们是把类成员设置为protected(保护状态)的,但是我们为了简化代码,使要说明的问题更为直观,更容易理解,我们在此处都设

《Effective C#》:使用成员初始化语句

为了方便内容的开展,我先说说一个对象的构造过程. 对于类型第一 个实例的构造过程大致如下: 1.分配静态成员的内存空间,此时空间存 储数据为0: 2.执行静态成员的初始化语句: 3.执行基类的静 态构造函数: 4.执行类型的静态构造函数: 5.分配成员的内存 空间,此时空间存储数据为0: 6.执行成员的初始化语句: 7. 执行相应的基类构造函数: 8.执行类型的构造函数. 那么对于 同类型的后续创建对象,前4个步骤不用执行的,直接从第5步开始. 现 在来说说为什么推荐使用成员初始化语句来初始化成

编程-C++数组作为类的私有成员求助

问题描述 C++数组作为类的私有成员求助 定义一个Employee类,其中包括姓名.街道地址.城市和邮编等属性,以及changeName()和display()等函数.display()显示姓名.街道地址.城市和邮编等属性,changeName()改变对象的姓名属性. 在employee.h文件中定义Employee类.Employee类具有姓名.街道地址.城市和邮编等私有数据成员,都可以用字符型数组来表示,在成员函数中,构造函数用来初始化所有成员数组,对字符数组的赋值可以使用字符串拷贝函数st