member-functions相关内容

对容器中所有元素的成员函数结果求和的最佳方法是什么?

假设我有以下对象: struct Foo{int size() { 返回 2;}}; 获取 vector 中所有对象的总 size 的最佳方法是什么(最易于维护、可读等)?我会发布我的解决方案,但我对更好的想法感兴趣. 更新: 到目前为止,我们有: std::accumulate 和仿函数 std::accumulate 和 lambda 表达式 普通的 for ..
发布时间:2022-01-24 20:50:37 C/C++开发

C++虚函数除了vtable怎么实现?

可能重复: 一个关于C++中虚拟机制的问题 在 C++ 中使用 vtable 是实现虚成员函数机制的唯一方法吗?还有哪些其他方式? 解决方案 另一个已知的机制是类型调度函数.实际上,您将 vtable 指针替换为 typeid(小枚举).(动态)链接器收集给定虚函数的所有覆盖,并将它们包装在 typeid 字段上的一个大 switch 语句中. 理论上的理由是,这用大量可预测 ..
发布时间:2022-01-24 16:13:20 C/C++开发

为什么在C++中通过空指针调用成员函数时程序不会崩溃?

#include "iostream"使用命名空间标准;A级{上市:无效的印记(){cout 解决方案 您没有使用 A 的任何成员变量 - 该函数完全独立于 A实例,因此生成的代码碰巧不包含取消引用 0 的任何内容.这仍然是未定义行为 - 它可能恰好在某些编译器上工作.未定义的行为意味着“任何事情都可能发生"——包括程序碰巧按照程序员的预期工作. 如果你例如使 mprint 成为虚拟的,您可 ..
发布时间:2022-01-06 22:58:11 C/C++开发

如何使用可变参数模板制作通用的 Lua 函数包装器?

对于我当前的项目,我一直在为 Lua 包装器编写大量 C/C++.其中很多是简单的 setter 和 getter,所以我设法编写了一些模板来轻松生成这些,如下所示: //类返回字段模板 int luaU_get(lua_State* L){T* obj = luaW_check(L, 1);luaU_push(L, obj->*Member);返回 1;}静态 luaL_reg Foo_Tab ..
发布时间:2021-12-30 20:21:24 C/C++开发

如何列出 javascript 对象的函数/方法?(这甚至可能吗?)

这个问题的措辞是故意像这个问题. 我什至不知道这是否可行,我记得依稀听到一些在 JS 中不可枚举的属性. 无论如何,长话短说:我正在一个 js 框架上开发一些东西,我没有相关文档,也无法轻松访问代码,知道我可以用我的对象做什么会很有帮助. 解决方案 我认为这就是您要找的: var obj = { locaMethod: function() { alert("hello"); ..
发布时间:2021-12-23 09:34:58 前端开发

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

我读到声明为成员函数的重载运算符是非对称,因为它只能有一个参数,而另一个自动传递的参数是 this 指针.所以不存在比较它们的标准.另一方面,声明为 friend 的重载运算符是对称,因为我们传递了两个相同类型的参数,因此它们可以进行比较. 我的问题是,当我仍然可以将指针的左值与引用进行比较时,为什么首选朋友?(使用非对称版本的结果与对称版本相同)为什么 STL 算法只使用对称版本? ..

如何使用指向成员函数的指针进行切换?

好吧,我只想做一个“开关";使用函数指针,但使用方法指针.开关是,如果我调用方法 Run(),它将重定向到 A::RunOn() 或 A::RunOff()code> 根据 Run ptr 指向这些成员函数. 我知道这是可以做到的.我在普通的 c 中做到了,但我已经搜索并在 c++ 但没有运气. A 类{typedef (void)(A::*RunPtr)(int);RunPtr RunM ..

c ++将类方法作为参数传递给带有模板的类方法

我正在尝试使用模板将一个类方法传递给另一个类方法,但找不到关于如何做的任何答案(没有 C++11,boost ok): 我将核心问题简化为: class Numerical_Integrator : public Generic Integrator{模板无效集成(无效(T :: * f)()){//F();//已经没有调用f()我得到错误}}类行为{void toto(){};无效进化( ..
发布时间:2021-09-04 20:45:06 C/C++开发

为什么成员函数不能用作模板参数?

为什么成员函数不能用作模板参数?例如,我想这样做: struct Foo {void Bar() {//做一些事情}};模板 无效呼叫(TOwner *p){p->func();}int main() {福一;Call(&a);返回0;} 我知道可以使用指向成员的指针来完成类似的事情;好吧,大多数时候它已经足够酷了,但我只是好奇为 ..
发布时间:2021-09-04 20:43:13 C/C++开发

Python中的非成员函数与成员函数

我是Python的新手,努力使语言的功能与我从C ++和Java的背景中习得的习惯保持一致. 与封装有关的最新问题,特别是由Meyer的"有效C ++ "的第23条总结的一个最佳想法: 首选非-成员非朋友功能改为成员功能. 暂时忽略 friend 机制,是否也认为非成员函数比Python中的成员函数更合适? 一个强制性的asinine示例: class Vector(o ..
发布时间:2021-05-04 19:13:51 Python

为什么静态成员函数只能在类定义中声明为静态,而不能在其自己的定义中声明为静态?

在实现用于在屏幕上创建/更新框的类时,我想添加一个静态成员函数,以确保没有当前可见的框重叠(将其信息从静态指针数组获取到所有当前可见的框) 我的初始代码具有以下结构: class Box{上市://...静态无效的arrangeOverlappingBoxes();};静态void Box :: arrangeOverlappingBoxes(){//...} 我很惊讶这会产生错误C ..
发布时间:2021-04-19 20:58:23 C/C++开发

成员函数上的常量引用限定符

我在那里的答案中看到了:通过右值引用返回是否更有效? 成员函数定义: Beta_ab const&getAB()const&{return ab;} 我熟悉成员函数上的 cv-qualifier ( const ),但不熟悉 const& . 最后一个 const& 是什么意思? 解决方案 & 是 ref-qualifier .引用限定符是C ++ 11中的新增功能,尚 ..
发布时间:2021-04-19 19:35:19 C/C++开发

如何在C ++的内置类中添加成员函数?

我想向字符串类添加一个新的成员函数"charReplace".该功能将用一个字符替换所有出现的一个字符.所以我准备了一个示例代码. #include#includestd :: string string :: charReplace(char c1,char c2){//此行中的错误while(this-> find(c1)!= std :: stri ..
发布时间:2021-04-19 18:50:43 C/C++开发

将C ++成员函数指针传递给STL算法

我的成员函数如下: XYZ类{上市:浮点函数(float x);私人的:float m_DensityMin;float m_DensityMax;}; 现在,我正在尝试转换 std :: vectorfoo 使用 std :: transform STL算法,方法是传递成员函数 function ,并将结果值存储在向量 bar 中 如果我将该函数用作全局函数,并且应 ..
发布时间:2021-04-19 18:45:07 C/C++开发