static-members相关内容

如何在 C++ 中初始化私有静态成员?

在 C++ 中初始化私有静态数据成员的最佳方法是什么?我在头文件中尝试过这个,但它给了我奇怪的链接器错误: class foo{私人的:静态 int i;};int foo::i = 0; 我猜这是因为我无法从类外部初始化私有成员.那么最好的方法是什么? 解决方案 类声明应该在头文件中(如果不共享则在源文件中). 文件:foo.h class foo{私人的:静态 int i;}; ..
发布时间:2021-12-01 14:57:39 C/C++开发

Android 静态对象生命周期

我正在创建事件搜索应用程序,我们从一个屏幕设置搜索条件并填充到另一个屏幕,然后用户可以从第 3 个屏幕编辑搜索条件并转到第 4 个屏幕. 为了完成上述任务,我使用了静态对象,它记住了应用程序周围的值,我不需要做任何额外的事情. 但我担心如果内存不足,android 中的静态对象生命周期是否会被 android 删除静态对象??? 由于android支持多任务,如果用户切换到另一个 ..
发布时间:2021-11-27 18:33:25 移动开发

为什么Java禁止内部类中的静态字段?

class OuterClass {类内部类{静态 int i = 100;//编译错误static void f() { }//编译错误}} 虽然无法使用 OuterClass.InnerClass.i 访问静态字段,但如果我想记录一些应该是静态的内容,例如创建的 InnerClass 对象的数量,使该字段成为静态会很有帮助.那么为什么Java禁止在内部类中使用静态字段/方法? 编辑:我 ..
发布时间:2021-11-25 14:01:40 Java Web开发

静态字段是否对垃圾收集开放?

给定一个仅在程序设置中使用的假设实用程序类: class MyUtils {私有静态 MyObject myObject = new MyObject();/*package*/static boolean doStuff(Params... params) {//用 myObject 和 params 做一些事情...}} 当 myObject 不再被使用时,它会被垃圾回收,还是会在程序的生 ..
发布时间:2021-11-25 13:28:36 Java Web开发

从另一个类访问的静态 ArrayList 始终为空

我有以下课程 import java.util.ArrayList;导入 java.util.List;公共类 TestStaticArrayList {公共静态列表numberList = new ArrayList();公共静态列表getArrayValues(){返回编号列表;}公共静态无效populateArray(){numberList.add("1");numberList.add ..
发布时间:2021-11-18 00:26:37 其他开发

解决链接器错误:对静态类成员的未定义引用

我的代码是 Arduinoish.我打开了详细编译,所以我可以验证所有 .o 文件确实正确传递给链接器,它们是(下面的链接器命令).这让我相信这是某种语法错误. 谷歌搜索错误“undefined reference to in function"会产生很多结果,例如“像这样将 foo.o 添加到你的链接器命令"等. 我希望解决方案就像缺少点或 -> 某处一样简单. 我在一个文件中 ..
发布时间:2021-11-17 03:36:10 其他开发

私有类函数与未命名命名空间中的函数

我发现自己往往没有私有类函数.如果可能的话,所有候选私有类函数而不是我放入未命名的命名空间并将所有必要的信息作为函数参数传递.我没有一个合理的解释为什么我要这样做,但至少对我来说看起来更自然.因此,我需要在头文件中公开较少的内部细节. 您有什么看法 - 这是正确的做法吗? 解决方案 在我通常工作的半大型项目中(超过 200 万行代码),如果可以,我会禁止私有类函数.原因是私有类函数是 ..
发布时间:2021-11-15 20:58:36 其他开发

“静态计数器"对于类型的行为很奇怪

我正在开发一个基于实体的组件系统,我正在尝试为组件类型分配一个特定的索引: static std::size_t getNextTypeId() {静态 std::size_t lastTypeIdBitIdx{0};++lastTypeIdBitIdx;//这一行在问题结束时产生输出std::cout ..
发布时间:2021-08-30 18:37:35 其他开发

C++ Meyers Singleton - 线程安全(互斥量的等效代码?)

上周有人向我指出了一段这样的代码: #include 命名空间 NSTest{单例类{民众:静态 SingletonClass &获取实例(){静态 pthread_mutex_t 互斥锁;pthread_mutex_lock(&mutex);如果(singletonPtr==nullptr){创建实例();}返回 (*singletonPtr);pthread_mutex_unlock(&mu ..
发布时间:2021-08-30 18:36:20 其他开发

使用模板参数初始化静态常量成员

我有几行可以在我的系统上很好地编译,但不能在同事系统上编译.这就是为什么我想问这个问题的首选解决方案是什么样的.我必须处理一个 enum,它隐含地定义了我必须为 std::array 提供多少空间.代码的其他部分也使用 FooSize 是静态的.(优化) 我目前的实现是这样的 enum class FooType{短福,龙福};//定义在不同的文件中模板 类 ..
发布时间:2021-08-30 18:36:18 其他开发

vc++ - 静态成员显示错误

我正在使用 vc++(2010).我正在尝试为服务器端套接字创建一个类.这是头文件 #include#include#include使用命名空间标准;类 AcceptSocket{//静态 SOCKET s;受保护:SOCKET 接受套接字;民众:AcceptSocket(){};void setSocket(SOCKET 套接字);静态无效建立连接(int portNo,string&);静态 ..
发布时间:2021-08-30 18:36:14 其他开发

关于静态成员变量的问题

在下面的代码中,我假设成员变量 mBar 只会在第一次构造 Foo 对象时实例化......并且这个 mBar 实例化将与所有未来的 Foo 对象共享,但 Bar() 构造函数将不会再次被调用.这准确吗? 公共类 Foo {私有静态 Bar mBar = new Bar();公共 Foo() {} 解决方案 该对象实际上可能在创建第一个 Foo 之前以 WAY 的方式构造.当 Classlo ..
发布时间:2021-08-30 18:36:11 其他开发

静态数据成员的定义

我正在阅读 Scott Meyers 的 C++ 并遇到了这个例子: class GamePlayer{私人的:静态常量 int NumTurns = 5;int score[NumTurns];//...}; 您在上面看到的是 NumTurns 的声明,而不是定义. 为什么不是定义?看起来我们用 5 来初始化静态数据成员. 我只是不明白声明但未定义一个值为5的变量是什么意思.我们 ..
发布时间:2021-08-30 18:36:09 其他开发

名称查找紧跟在限定的 declarator-id 之后

我试图理解以下引用的含义 (3.4.3/3 N3797): 在qualified-id之后的名称在范围内查找成员的类或命名空间. 命名空间 A{C级{民众:静态常量 int a=7;静态 int b;};}int A::C::b=a;//7 static int b; 的作用域仅由 b 的声明点后面的声明区域组成.其实: 在类中声明的名称的潜在范围不仅包括名称声明点之后的声明区域, ..
发布时间:2021-08-30 18:36:03 其他开发

编译器能否正确处理静态变量的初始化顺序?

以下情况如何?如果存在依赖,编译器能否正确处理静态变量的初始化顺序? a.h templatestruct A { static double a;};模板双A T :: a = 1; b.h struct B { static double b;}; b.cpp #include "b.h"#include "a.h"double B::b = A::a; 解决方案 ..
发布时间:2021-08-30 18:36:00 其他开发

静态变量和方法

我遇到了一个这样设置的类: public class MyClass {私有静态布尔值开始 = 假;私人 MyClass(){}公共静态无效 doSomething(){如果(开始){返回;}开始=真;//下面的代码只应该运行//如果没有启动就运行}} 我对静态方法的理解是你不应该在它们中使用类变量,除非它们是常量,并且不会改变.相反,您应该使用参数.我的问题是为什么通过执行 MyClass. ..
发布时间:2021-08-30 18:35:55 其他开发

有什么方法可以保存“静态成员"的状态?

就像我们使用序列化保存实例变量的方式一样,有什么方法可以保存static成员的状态? 如果有一种情况,需要恢复静态成员的状态来恢复某些东西,人们会怎么做? 解决方案 我想到的最简单的选择是使用 单例 而不是静态字段.单例对象可以被序列化和反序列化,你可以管理它的生命周期,同时你保留静态字段给你的“全局状态"(也就是说,全局状态是一件坏事,但这是一个不同的话题) 否则 - 在类加 ..
发布时间:2021-08-30 18:35:52 其他开发

模板类静态数据成员初始化的部分模板特化

对于特定参数,如何以不同的方式初始化模板类的静态数据成员? 我知道模板与其他类型的类不同,只有在项目中使用的才会被实例化.我可以为不同的参数列出许多不同的初始化,并让编译器使用合适的方法吗? 例如,以下是否有效,如果无效,正确的方法是什么?: template类一些类{静态 T someData;//其他数据、函数等...};模板T someClass::someData = T.g ..
发布时间:2021-08-30 18:35:49 其他开发