草庐IT

static成员

全部标签

c++ - 在C++中将成员函数转换为静态函数

我正在编写一个内存测试框架,其中我用我自己的(例如malloc、realloc、free等)替换动态内存分配函数。但是,系统需要静态函数(我无法更改)。我有一个MemoryTester类,它记录内存调用,我想绑定(bind)内存分配函数的成员函数实现。这可能用C++实现吗?编辑:下面是一些突出显示我正在尝试做的事情的代码:typedefvoid*(allocateFuncPtr)(uint8_t);typedefvoid(freeFuncPtr)(void*);voidsetAllocateFunction(allocateFuncPtr){...}voidsetFreeFunctio

C++,从同一个原始对象复制的多个对象中的成员指针的 'coupling'

#include#include#include#includestructs_A{boolbin;s_A():bin(0){}};classc_A{public:s_A*p_struct;c_A():p_struct(NULL){p_struct=news_A[16];}voidReset(){delete[]p_struct;p_struct=news_A[16];}};intmain(){srand(1);intx=30;std::vectorobjects;objects.assign(x,c_A());std::vectorobjects_copy;for(intq=0;q不

具有不同成员的 C++ 结构 - 在运行时决定

我有以下情况。下面附上伪代码。我有一个A类,它有一个D或E类型的对象c,这会有所不同(实际上是随机决定的)。它使用b作为与远程计算机通信的消息。那么,我应该如何让结构B具有不同的变量(在本例中为float或double)?另外,当我打开一个套接字并传输一个对象时,该对象现在将具有不同的大小。远程计算机不知道对象的大小是否对应于sizeof(int)+sizeof(float)或sizeof(int)+sizeof(double)。我需要将大小作为参数来接收数据包,那么我该如何解决呢?代码:classC{...};classD:publicC{...};classE:publicC{..

c++ - const 引用右值的类数据成员的生命周期是多少?

通常这个讨论只针对局部函数变量:voidfoo(constint&i){//useitillfoo()ends}foo(3);但是,这条规则是否也适用于class成员?structA{constint&a;A():a(3){}//version1A(constint&i):a(i){}//version2};现在A用作,{return()?newA:newA(3):newA(some_local_variable);}a的内容是否会在all3的整个生命周期内保持不变新分配A? 最佳答案 C++03标准(“12.2/5临时对象”部分)

c++ - 在数据结构中保存成员的替代方法

我需要记住n个实例的值对。我知道一个解决方案,即制作一个单独的类或结构,声明2个成员变量并将其放在列表或数组中。但是在C++/VC++MFC中还有其他有效的方法吗? 最佳答案 您可以使用std::pair创建一对或std::make_pair(T1,T2).然后,您可以将这些对存储在您选择的数据结构中,因为您想要修改std::vector>orstd::set> 关于c++-在数据结构中保存成员的替代方法,我们在StackOverflow上找到一个类似的问题:

c++ - 是否可以将 Qt 的 QIcon 实例作为我自己类的静态成员?

我的类代表一系列项目。此类序列的实例可能有很多,但它们始终作为树结构的一部分显示在GUI中。序列负责用它的数据填充树,它在树中有自己的图标。由于所有序列的图标都相同,因此我将其设为静态:classSequence{public:Sequence(){}/*...*/protected:QListitems_;staticconstQIcontreeIcon_;};constQIconSequence::treeIcon_=QIcon(":/icons/seq.png");问题是当我运行应用程序时,它崩溃了:QPixmap:MustconstructQApplicationbeforea

c++ - 如何使用 BOOST_STATIC_ASSERT

#include#includeusingnamespacestd;//Iunderstandhowthefollowingtemplatefunctionworks//template//TGetMax(Ta,Tb){//Tresult;//result=(a>b)?a:b;//return(result);//}//Ihavedifficultiestounderstandhowthefollowingcodeworks//whenweshouldusethissyntaxtemplatevoidaccepts_values_between_1_and_10(){BOOST_STA

c++ - 访问类中的私有(private)成员

我需要从DLL访问一个对象,对该对象进行一些操作并将该对象提供给另一个函数。问题是我需要更改的字段是私有(private)的。我不想改变原来类中字段的private修饰符,因为该类是很久以前写的,并且在很多地方都在使用。然而,在我操作类的地方,我需要大部分字段而没有保护(这是一个hack)。最好的方法是什么?注意:我不允许更改原来的类 最佳答案 在这种情况下,DLL中编译的内容并不重要,重要的是您包含的头文件。我建议您更改您感兴趣的类的头文件,以便您需要的变量是public。成员访问由编译器而不是链接器检查,因此重要的是类的声明方式

c++ - 如何访问可变模板参数包成员中存在的内部模板 typedef?

我有一些代码对我来说似乎没有歧义,但gcc4.7令人窒息:#include#includeusingnamespacestd;//Containerformixinstemplateclass...Mixins>structMix:Mixins>...{typedeftuple>...>types;};//OuterlayerextractsthetypetuplefromtheargumenttemplatestructInnerCombiner{typedeftypenameInnerCombiner::typetype;};//Typedeftypetobeanewmixofth

c++ - 我应该如何构造相互依赖的C++成员?

我有一个使用库进行通信的类:classTopic{Topic(TypeT,Stringname);};classReader{Reader(Topic,Stringname);};classWriter{Writer(Topic,Stringname);};我想做一个这样的说话者类:Talker(TypeT,Stringname);并通过构造函数生成成员Writer和Reader。我在用指针做这件事之间左右为难:classTalker{Topic*m_Topic;Reader*m_Reader;Writer*m_Writer;Talker(TypeT,Stringname){m_Top