草庐IT

成员方

全部标签

c++ - 通用成员函数指针作为另一个类中的模板参数

我的问题类似于this.而'KarrekSB'sanswer实际上对我有所帮助。我有这些类(class):基础.h:classBase{public:Base(){}virtual~Base(){}virtualvoidinit()=0;};A1.h:#include#include"Base.h"usingnamespacestd;classA1:publicBase{public:A1(){}virtual~A1(){};virtualvoidinit(){cout我有另一个类应该能够存储具有任何类型和数量的参数的任何通用成员函数。该类看起来像这样:MFholder.h:#incl

c++ - 当同名类模板存在时,需要范围解析运算符调用成员函数模板

我有一个类模板恰好与某些类的成员函数模板同名。现在另一个函数模板被实例化为其中一个具有相关成员函数模板的类。要在此函数模板中调用成员函数模板,我需要使用template关键字,我理解这一点并且对此没有问题。但是,我需要使用范围解析运算符(我刚刚发现这就是所谓的)::指定我的意思是类的成员函数模板而不是类模板,我不明白为什么。这是很多模板化的东西,所以让我举个例子://classwithsamenameasmemberfunctionbelow.//mustbeclasstemplateorerrordoesn'tshowup.//alsonoerrorifthisisafunction

c++ - 多态性和成员函数指针是如何工作的?

这个问题在这里已经有了答案:Pointerstovirtualmemberfunctions.Howdoesitwork?(3个答案)关闭9年前。我有以下代码:#includeusingnamespacestd;classBase{public:virtualvoidWhoAmI()const;typedefvoid(Base::*WhoPtr)()const;};classDerived:publicBase{public:virtualvoidWhoAmI()const;};voidDerived::WhoAmI()const{cout让我们关注主要内容:intmain(){Bas

c++ - 是否应该为类成员访问表达式中的依赖类/命名空间名称延迟名称查找?

下面的代码被clang和gcc都拒绝templatevoidf(Tt){t.Dependent::f();//clangaccepts,gccrejectst.operatorDependent*();//bothreject}structDependent{voidf();};structA:Dependent{operatorDependent*();};templatevoidf(A);我对标准的阅读表明这两种表达方式都应该被接受。在这两种情况下,Dependent只能是类型名称。在这两种情况下,名称Dependent都将“在对象表达式的类中查找”t。由于t是一个依赖于类型的表达

C++双指针成员访问

C++(Arduino包装器)问题:我正在一个连接了LCD的Arduino上写一个射击游戏-我有一个基类(Sprite),从这个基类派生出其他类-Alien,Missile和Player.Alien类的构造函数也有私有(private)成员pMissile(指向Missile类的指针)-我认为“对象中的对象”是描述这一点的一种方式。[当Alien发射导弹,它将自己的(x,y)坐标传递给导弹,导弹有自己的从Alien开始移动的方法。的坐标]我的问题是:如何通过Alien访问导弹的坐标?目的?简化的代码如下,我还绘制了类的表示://Bassclass-hasaform/shape,xand

c++ - C++编译器如何保证常量成员变量的线程安全?

C++11x标准更改了“const”关键字的语义。现在它意味着真正的线程安全。据我了解,const成员变量等于javafinal字段。我想在CPUicore7G++4.7.1上检查。我使用as-std=c++0x-pthread-DCONST和不使用编译了以下代码。两个可执行文件是相同的。汇编版本没有*fence指令。我希望在构造函数的末尾看到*fence。classBig{public:#ifdefCONSTconst#endiflonga;Big(longa):a(a){}voidcheck()#ifdefCONSTconst#endif{assert(a==123L);}};in

c++ - 两次声明相同的非成员函数?

我有A类和B类我正在使用A和B定义一个非成员方法doubleoperator*(constA&a,constB&b);把它同时声明到A.h和B.h中好不好,因为它可以被认为同时属于A和B? 最佳答案 IsitgoodtodeclarethisintoA.handB.hatthesametimesinceitcanbeconsideredasbelongtobothAandB?可以这样声明,因为它只是声明,而不是定义。除此之外,是否这样做,或者将其放入公共(public)标题等可能只是个人喜好。

作为 C 回调的 C++ 静态成员函数需要访问非静态引用

在我的C++代码中,我依赖于C库。这个C库让我可以定义一个带有3个参数的回调。示例:文件.c:#ifdef__cplusplusextern"C"{#endiftypedefvoid(*callback)(argument*1,argument*2,argument*3);...voidset_callback(ARG1,callbackname_of_callback);...在我正在开发的C++库中,我希望这个回调成为一个类的成员函数,因为我不能直接将成员函数作为回调传递给C库,我创建了一个静态函数作为回调并在内部这个静态函数我想引用一个类对象并调用它的成员函数来完成工作。现在我的

【C++】类与对象(四)——初始化列表|explicit关键字|static成员|友元|匿名对象

前言:初始化列表,explicit关键字,static成员,友元,匿名对象文章目录一、构造函数的初始化列表1.1构造函数体内赋值1.2初始化列表二、explicit关键字三、static成员四、友元4.1友元函数4.2友元类五、内部类六、匿名对象一、构造函数的初始化列表1.1构造函数体内赋值classDate{public: Date(intyear,intmonth,intday){ //赋值,并非初始化 _year=year; _month=month; _day=day; }private: int_year; int_month; int_day;};构造函数调用之后,在函数体

c++ - 当 CComPtr 作为类的成员变量时如何销毁它?

当CComPtr作为类的成员变量时,如何销毁它?下面是我写的一段代码,m_piControl是成员变量CComPtr。我已将m_piControl的值分配给rpControl和rpControl以供进一步使用。HRESULTCSession::GetInterface(OUTCComPtr&rpControl){if(m_piConSIControl==NULL){CComPtrpConDM;HRESULThResult=GetMaintenance(&pConDM);if(FAILED(hResult))returnhResult;CComQIPtrpMaintenance(pCon