member-functions相关内容
假设我有以下对象: struct Foo{int size() { 返回 2;}}; 获取 vector 中所有对象的总 size 的最佳方法是什么(最易于维护、可读等)?我会发布我的解决方案,但我对更好的想法感兴趣. 更新: 到目前为止,我们有: std::accumulate 和仿函数 std::accumulate 和 lambda 表达式 普通的 for
..
可能重复: 一个关于C++中虚拟机制的问题 在 C++ 中使用 vtable 是实现虚成员函数机制的唯一方法吗?还有哪些其他方式? 解决方案 另一个已知的机制是类型调度函数.实际上,您将 vtable 指针替换为 typeid(小枚举).(动态)链接器收集给定虚函数的所有覆盖,并将它们包装在 typeid 字段上的一个大 switch 语句中. 理论上的理由是,这用大量可预测
..
#include "iostream"使用命名空间标准;A级{上市:无效的印记(){cout 解决方案 您没有使用 A 的任何成员变量 - 该函数完全独立于 A实例,因此生成的代码碰巧不包含取消引用 0 的任何内容.这仍然是未定义行为 - 它可能恰好在某些编译器上工作.未定义的行为意味着“任何事情都可能发生"——包括程序碰巧按照程序员的预期工作. 如果你例如使 mprint 成为虚拟的,您可
..
int CPMSifDlg::EncodeAndSend(char *firstName, char *lastName, char *roomNumber, char *userId, char *userFirstName, char *userLastName){...返回 1;}外部“C"{__declspec(dllexport) int start(char *firstName, c
..
对于我当前的项目,我一直在为 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
..
这个问题的措辞是故意像这个问题. 我什至不知道这是否可行,我记得依稀听到一些在 JS 中不可枚举的属性. 无论如何,长话短说:我正在一个 js 框架上开发一些东西,我没有相关文档,也无法轻松访问代码,知道我可以用我的对象做什么会很有帮助. 解决方案 我认为这就是您要找的: var obj = { locaMethod: function() { alert("hello");
..
我读到声明为成员函数的重载运算符是非对称,因为它只能有一个参数,而另一个自动传递的参数是 this 指针.所以不存在比较它们的标准.另一方面,声明为 friend 的重载运算符是对称,因为我们传递了两个相同类型的参数,因此它们可以进行比较. 我的问题是,当我仍然可以将指针的左值与引用进行比较时,为什么首选朋友?(使用非对称版本的结果与对称版本相同)为什么 STL 算法只使用对称版本?
..
好吧,我只想做一个“开关";使用函数指针,但使用方法指针.开关是,如果我调用方法 Run(),它将重定向到 A::RunOn() 或 A::RunOff()code> 根据 Run ptr 指向这些成员函数. 我知道这是可以做到的.我在普通的 c 中做到了,但我已经搜索并在 c++ 但没有运气. A 类{typedef (void)(A::*RunPtr)(int);RunPtr RunM
..
我一直在尝试使用 Visual Studio 调试器进行调试,但我不明白为什么我的函数 emp.setHoursWorked(hWorked); 在 recordHoursWorkedForEmployeecode> 似乎只是更新 numOfHoursWorked 而在 recordHoursWorkedForEmployee 中,一旦程序退出该函数,向量中所有员工的 numOfHoursWork
..
我正在尝试使用模板将一个类方法传递给另一个类方法,但找不到关于如何做的任何答案(没有 C++11,boost ok): 我将核心问题简化为: class Numerical_Integrator : public Generic Integrator{模板无效集成(无效(T :: * f)()){//F();//已经没有调用f()我得到错误}}类行为{void toto(){};无效进化(
..
为什么成员函数不能用作模板参数?例如,我想这样做: struct Foo {void Bar() {//做一些事情}};模板 无效呼叫(TOwner *p){p->func();}int main() {福一;Call(&a);返回0;} 我知道可以使用指向成员的指针来完成类似的事情;好吧,大多数时候它已经足够酷了,但我只是好奇为
..
我是Python的新手,努力使语言的功能与我从C ++和Java的背景中习得的习惯保持一致. 与封装有关的最新问题,特别是由Meyer的"有效C ++ "的第23条总结的一个最佳想法: 首选非-成员非朋友功能改为成员功能. 暂时忽略 friend 机制,是否也认为非成员函数比Python中的成员函数更合适? 一个强制性的asinine示例: class Vector(o
..
在基类中调用非模板成员函数时,可以使用 using 将其名称导入派生类,然后使用它.基类中的模板成员函数也可以吗? 仅使用 using 无效(使用g ++-snapshot-20110219 -std = c ++ 0x): 模板结构A {模板无效f(){}};模板结构B:A T = 1.{使用A T :: f
..
这在clang 3.3中可以正常编译: 模板结构M;模板结构M{};模板结构M{}; 但在gcc 4.8.1中失败: [...]错
..
在实现用于在屏幕上创建/更新框的类时,我想添加一个静态成员函数,以确保没有当前可见的框重叠(将其信息从静态指针数组获取到所有当前可见的框) 我的初始代码具有以下结构: class Box{上市://...静态无效的arrangeOverlappingBoxes();};静态void Box :: arrangeOverlappingBoxes(){//...} 我很惊讶这会产生错误C
..
这是我的意思: //test.h类分类{上市:模板无效f(T t);}; - //test.cpp模板无效的cls :: f(const char *){} - //main.cppint main(){cls c;双倍x = .0;c.f(x);//给出EXPECTED未定义的引用(链接器错误)const char * asd ="ads";c.f(asd);//可
..
我在那里的答案中看到了:通过右值引用返回是否更有效? 成员函数定义: Beta_ab const&getAB()const&{return ab;} 我熟悉成员函数上的 cv-qualifier ( const ),但不熟悉 const& . 最后一个 const& 是什么意思? 解决方案 & 是 ref-qualifier .引用限定符是C ++ 11中的新增功能,尚
..
我有一个 Matrix 类,它具有重载的 * 运算符,用于标量和矩阵乘法. 模板类矩阵{上市://...矩阵运算符*(T标量)const;//...}//...模板矩阵T矩阵T :: operator *(T RightScalar)const{矩阵TResultMatrix(m_unRowSize,m_unColSize);对于(uint64_t i =
..
我想向字符串类添加一个新的成员函数"charReplace".该功能将用一个字符替换所有出现的一个字符.所以我准备了一个示例代码. #include#includestd :: string string :: charReplace(char c1,char c2){//此行中的错误while(this-> find(c1)!= std :: stri
..
我的成员函数如下: XYZ类{上市:浮点函数(float x);私人的:float m_DensityMin;float m_DensityMax;}; 现在,我正在尝试转换 std :: vectorfoo 使用 std :: transform STL算法,方法是传递成员函数 function ,并将结果值存储在向量 bar 中 如果我将该函数用作全局函数,并且应
..