问题标签 [static-members]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
10208 浏览

c++ - 如何在 C++ 中释放静态成员变量?

谁能解释如何释放静态成员变量的内存?据我了解,只有当类的所有实例都被销毁时,它才能被释放。在这一点上,我有点无助……

一些代码来解释它:

0 投票
1 回答
383 浏览

c++ - 重载新/删除问题

这是我的场景,我试图重载 new 并全局删除。我在一个名为 allocator.h 的文件中编写了我的分配器类。我想要实现的是,如果文件包含此头文件,则应使用我的 new 和 delete 版本。

所以在头文件“allocator.h”中我声明了这两个函数

我有一个相同的头文件,我有一个类可以完成所有分配器的工作,

我想从 new 和 delete 函数中调用这个类,我希望这个类是静态的,所以我这样做了:

在 cpp 文件中它看起来像这样:allocator.cc

问题是当我尝试调用作为静态对象的类 SmallObjAllocator 的构造函数时。由于某种原因,编译器在初始化时调用了我的重载函数 new。所以它然后尝试使用 My_SmallObjectAllocator::myAlloc.deallocate(p, size); 未定义,因此程序崩溃。

那么为什么当我定义一个静态对象时编译器会调用 new 呢?我该如何解决?

0 投票
6 回答
723 浏览

c# - C# 两个具有相互引用的静态成员的类

我想知道为什么这段代码不会以无限递归结束。我猜它与静态成员自动初始化为默认值有关,但有人可以告诉我“逐步” 'a'如何获得 2 的值和 1 的 'b'?

0 投票
2 回答
457 浏览

c++ - 静态类成员定义初始化的最佳替代方案?(对于 SVN 关键字)

我将 .cpp 文件的扩展 SVN 关键字文字存储在 'static char const *const' 类成员中,并希望尽可能相似地存储 .h 描述。简而言之,我需要保证将静态成员(可能在 .cpp 文件中)的单个实例化为自动生成的非整数文字,该文字存在于可能共享的 .h 文件中。不幸的是,该语言没有尝试解决由在类定义之外进行的赋值导致的多个实例化,并明确禁止类定义内的非整数初始化。我最好的尝试(使用静态包装内部类)并不太脏,但我真的想做得更好。有没有人有办法将下面的包装模板化或有一个完全优越的方法?

...

...

有没有办法解决在字符串文字上模板化 hInfoWrap 类的静态链接地址问题?分配在类定义之外的外部 char 指针在语言上是有效的,但以与直接成员初始化相同的方式失败。我明白为什么该语言会回避整个解决问题,但是如果提供了一个反向的外部成员限定符会非常方便,其中定义代码在类定义中对任何调用者都是可见的,但实际上只在单个特殊点处被调用在别处声明。

无论如何,我离题了。对于我们所拥有的语言、模板或其他语言,最好的解决方案是什么?谢谢!

0 投票
4 回答
24169 浏览

java - java对象,共享变量

我在这里有一个简单的问题。如果我在主类中 [declared] 的对象中声明一个变量,如下所示:

(通常我这样声明

)

它可以在主类中也被[声明]的不同对象中使用吗?顺便说一句,我不关心安全atm,我只想做点什么,不关心保护)

0 投票
3 回答
10427 浏览

asp.net-mvc - MVC 应用程序中的随机数生成

如果每个请求只需要一个数字,在 ASP.NET MVC 应用程序中生成随机数的正确方法是什么?根据 MSDN,为了获得足够质量的随机性,有必要使用单个 System.Random 对象生成多个数字,创建一次。由于在 MVC 中为每个请求创建了一个控制器类的新实例,因此我不能使用在控制器的构造函数中为 Random 对象初始化的私有字段。那么我应该在 MVC 应用程序的哪个部分创建和存储 Random 对象?目前我将它存储在控制器类的静态字段中,并在使用它的操作方法中延迟初始化它:

由于控制器类的多个实例可以访问“随机”字段,如果两个实例尝试同时初始化它,它的值是否可能损坏?还有一个问题:我知道静态变量的生命周期就是应用程序的生命周期,但对于 MVC 应用程序,它是什么?是从 IIS 启动到 IIS 关闭吗?

0 投票
8 回答
1631 浏览

c# - 类装饰器来声明静态成员(例如,对于 log4net)?

我正在使用 log4net,我们的代码中有很多这样的:

一个缺点是这意味着我们将这个 10 字的部分粘贴到所有地方,并且时不时有人忘记更改类名。log4net FAQ也提到了这种替代可能性,它更加冗长:

是否可以编写一个装饰器来定义它?我真的很想简单地说:

我用其他语言做过类似的事情,但从来没有像 C# 这样的静态编译语言。我可以从装饰器中定义类成员吗?

编辑:呵呵。我是一名 Lisp 程序员。我很欣赏切换语言的建议,但实际上,如果我要切换语言以获得更好的元编程能力,我会一直使用 Lisp,而不是半途而废。不幸的是,在这个项目中不能选择使用不同的语言。

0 投票
2 回答
1442 浏览

php - PHP:扩展静态成员数组

我有以下情况:

有什么方法可以将这两个数组组合起来B::$arr1,2,3,4

我不需要更改这些数组,但我不能将它们声明为 const,因为 PHP 不允许 const 数组。https://stackoverflow.com/questions/ask PHP 手册指出,我只能分配字符串和常量,所以parent::$arr + array(1,2)不起作用,但我认为应该可以做到这一点。

0 投票
3 回答
388 浏览

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

我正在使用 vc++(2010)。我正在尝试为服务器端套接字创建一个类。这是头文件

以及对应的源文件

现在 main.cpp 是

当我编译我得到的错误是

什么可能导致这种情况,我该如何解决?

0 投票
1 回答
9886 浏览

c++ - 对静态成员变量的未定义引用

我有这个有一个静态成员的类。它也是我程序中其他几个类的基类。这是它的头文件:

这是它的实现文件。

我正在使用 g++,它返回三个undefined reference to 'yarlObject::YarlObject::nextID链接器错误。如果我++nextID将构造函数中的短语更改为 just nextID,则只会出现一个错误,如果将其更改为1,则链接正确。我想这很简单,但发生了什么?