问题标签 [static-functions]

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 投票
3 回答
2701 浏览

c - Linux设备驱动程序中的静态函数?

linux代码中设备驱动程序中的大多数函数定义被定义为静态是否有原因?是否有一个原因?

有人告诉我这是为了范围界定和防止命名空间污染,谁能详细解释一下为什么在这种情况下使用静态定义?

0 投票
15 回答
25935 浏览

c++ - 你会在哪里使用友元函数与静态成员函数?

当我们希望非成员函数访问该类的私有成员时,我们将其设为类的朋友。这赋予它与静态成员函数相同的访问权限。这两种选择都会为您提供一个与该类的任何实例都不相关的函数。

我们什么时候必须使用朋友功能?我们什么时候必须使用静态函数?如果两者都是解决问题的可行选择,我们如何衡量它们的适用性?默认情况下应该首选一个吗?

例如,当实现一个创建foo只有一个私有构造函数的类实例的工厂时,该工厂函数应该是foo(你会调用foo::create())的静态成员还是应该是友元函数(你会调用create_foo())?

0 投票
5 回答
6546 浏览

c++ - C API 函数回调到 C++ 成员函数代码

所以,我正在使用 FMOD api,它确实是一个 C api。

并不是说这很糟糕或任何事情。只是它与 C++ 代码的接口不好。

例如,使用

它需要一个 C 风格的函数callbackFunc,但我想将一个类的成员函数传递给它。

我最终为此使用了 Win32 技巧,使成员函数成为静态的。然后它作为 FMOD 的回调。

现在我必须破解我的代码以使一些成员静态,只是为了说明 FMOD 的 C 特性。

我想知道它在 FMOD 中是否可行,或者是否有办法将回调链接到特定 C++ 对象的实例成员函数(不是静态函数)。会顺畅很多。

0 投票
2 回答
20001 浏览

c++ - 静态函数帮助 C++

我无法解决我遇到的这个问题。这是一个简单的例子:

我收到抱怨 function2 是私有的错误。如果我将其公开(我真的不想这样做),我会收到有关对 function2 的未定义引用的错误。我究竟做错了什么?谢谢!

0 投票
1 回答
1794 浏览

c++ - SWIG 支持静态成员函数的继承

SWIG 不包装派生类的继承静态函数。如何解决?

这是问题的简单说明。

这是一个简单的 C++ 头文件:

C++ 源文件只包含头文件:

SWIG 接口文件只包含 C++ 头文件:

然后我通过以下方式生成 swig 包装器代码:

然后我通过这个创建一个共享库:

因此,当在 tcl 解释器中加载 libtest.so 并尝试使用包装的接口时,它具有以下行为:

所以问题是我怎样才能让 SWIG 包装 D:​​:stat?

0 投票
2 回答
205 浏览

c# - 在 C# 中的静态函数中访问服务器变量的问题

我无法在我的静态函数中访问服务器/响应变量。我可以在静态函数中访问它们还是应该包含一些命名空间

0 投票
3 回答
253 浏览

java - 使用静态函数有哪些陷阱?就像在这个Android代码中一样

我在本示例的 getView() 方法中使用了一个静态函数来下载 ImageView 的源代码。稍后将包含线程。但是,我一般想知道在这种情况下如何保存静态函数的使用。

因为我经历过,在某些情况下(当我快速滚动时)图像会混淆。

0 投票
2 回答
3040 浏览

c++ - C++ 从另一个静态函数调用静态函数

在头文件中有一个静态函数

0 投票
2 回答
43567 浏览

c++ - 未命名命名空间优于静态命名空间?

未命名的命名空间如何优于static关键字?

0 投票
6 回答
3827 浏览

c++ - 静态成员函数和线程安全

在 C++ 中,当您在静态成员函数中有局部变量时,这是否意味着这些局部变量也是隐式静态的,或者它们真的是局部的?

例子:

此外,运行此函数的线程池中的不同线程,myint 是否需要被锁保护?假设传递给它的所有值都是不同的并且彼此没有关系。

编辑:谢谢你的答案。现在如果我传入 a boost::shared_ptr<T>,知道这个对象不会被另一个线程同时使用怎么办?(不确定是否真的可以保证,或者你可以吗?)

我想传入的原始 ptr 需要一些保护,如果它被全部使用?