问题标签 [member-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 投票
4 回答
25911 浏览

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

在静态成员函数中创建的对象和变量不像在成员函数中那样被视为“本地”,因此它们现在可以在多个线程之间共享,对吗?

而如果您有一个创建某个对象的成员函数,这将是线程本地的,因此它是非共享的。

我这样说对吗?

0 投票
2 回答
106033 浏览

c++ - 运算符重载:成员函数与非成员函数?

我读到声明为成员函数的重载运算符是不对称的,因为它只能有一个参数,而自动传递的另一个参数是this指针。所以没有标准来比较它们。另一方面,声明为 a 的重载运算符friend对称的,因为我们传递了两个相同类型的参数,因此可以比较它们。

我的问题是,当我仍然可以将指针的左值与引用进行比较时,为什么首选朋友?(使用非对称版本的结果与对称版本相同) 为什么 STL 算法只使用对称版本?

0 投票
2 回答
1310 浏览

php - 一台服务器上的自定义 Magento 模块出现致命错误,但另一台服务器上没有

我正在 Magento 中创建自己的自定义模块,并且在 Litespeed 服务器(PHP v5.2.14)上进行测试期间,我得到了一个Fatal Error: Call to a member function batch() on a non-object in ../../../BatchController.php on line 25在另一台 linux 服务器和 wamp 服务器(PHP v5.2.11)上测试期间没有出现的模块。

这把我难住了。我猜它与服务器配置有关,而不是代码本身。但我只是猜测。我希望这里有人可以告诉我。

除了 php 版本和环境之外,我能看到的唯一真正的主要区别是错误所在的服务器使用的是 Suhosin 补丁。但这会导致这种情况吗?

有问题的行Mage::getModel('mymodule/mymodel')->batch();是包含在 IF 语句中的行。batch()是位于我的模型文件中的公共函数。

如果您需要更多代码,请告诉我。

谢谢!

0 投票
4 回答
26428 浏览

c++ - C++ 易失性成员函数

我是否需要将所有成员变量都声明为自动x处理?yvolatilevolatile

我想确保编译器x不会用“stuff with”重新排序“stuff with ”。y

编辑:如果我将普通类型转换为volatile类型会发生什么?这会指示编译器不要重新排序对该位置的访问吗?我想在特殊情况下将普通变量传递给参数为 volatile 的函数。我必须确保编译器不会通过之前或之后的读写重新排序该调用。

0 投票
5 回答
32623 浏览

c++ - C++ typedef 成员函数签名语法

我想为成员函数签名声明类型定义。全局函数 typedef 如下所示:

但是我不能对成员函数做同样的事情:

这听起来合乎逻辑,因为foo::是访问类中成员的语法foo

我怎样才能 typedef 只是签名?

0 投票
2 回答
1297 浏览

c++ - C++0x | 为什么 std::atomic 使用 volatile 限定符重载每个方法?

当前草案的以下摘录说明了我的意思:

易失性是可传递的。因此,您不能从易失性对象调用非易失性成员函数。另一方面,允许从非易失性对象调用易失性成员函数。

那么,原子类中的 volatile 和 non-volatile 成员函数在实现上有什么区别吗?换句话说,是否需要非易失性重载?

0 投票
1 回答
179 浏览

c++ - 反正有没有使用成员函数作为默认参数?

它尝试了类似的方法,但不起作用。有没有办法获得类似的效果?

0 投票
6 回答
5700 浏览

c++ - 成员函数中的静态变量

我已经四处搜索,但除了全局变量或成员函数本身之外,我找不到任何关于此的内容。

以上是做什么的,即发生了什么,justAbool在离开作用域后是否保持其价值?或者当它重新进入作用域时它是否“记住”了这个值?

0 投票
3 回答
1635 浏览

c++ - C++ 成员函数链接返回类型和派生类

鉴于这个人为的例子:

这个想法是使用“成员函数链接”来能够连续调用多个成员函数。(有很多这样的例子;上面是我能想到的最短的例子。我的实际问题是类似的,如下所述。)

问题是,如果派生类添加了它自己的链接成员函数,但您首先调用基类的成员函数,您会得到一个基类引用,这当然不能用于调用派生类的成员函数。

有没有什么聪明的方法可以解决这个问题并且仍然保持成员函数链接的能力?


实际问题

我的实际问题是我的基类是一个异常,而我的派生类是从基异常派生的类。对于这些类,我也想使用成员函数链接:

问题是set_something()返回base_exceptioncatch期望 a derived_exception。当然,人类可以判断异常的实际类型是 a derived_exception,但编译器显然无法判断。

这就是我真正要解决的问题,即,如何让基异常类能够在异常对象上设置可选参数,同时返回派生类型的实例。我上面给出的point_2d例子是(我相信)同一个问题的一个更小更简单的版本,供人们理解,并且解决更小的问题也将解决我的实际问题。

请注意,我确实考虑过制作base_exception模板并传入派生类型,例如:

我相信实际上确实解决了问题,但它不是一个完美的解决方案,因为如果另一个类more_derived_exception派生自derived_exception,那么我们又回到了同样的问题。

0 投票
4 回答
6528 浏览

c++ - C++ for_each 中的成员函数指针

我正在为一个学校项目用 C++ 开发一个小型虚拟机,它应该像 dc 命令一样工作,并且由一个输入输出元素、一个芯片组、一个 Cpu 和 Ram 组成。我目前正在研究芯片组,我在其中实现了一个小解析类,以便能够从标准输入或文件中获取一些 Asm 指令,然后将这些指令推送到 Cpu。

问题是:我的指令在 std::list 中排序,我希望能够使用 foreach 指令逐个推送它们。为此,我需要能够调用我的成员函数“push_instruction”作为 for_each 的函数指针 F;我找不到这样做的诀窍......

有任何想法吗?这是我的代码: