我写了一个小程序,我试图将指向类的成员函数的指针传递给另一个函数.你能帮助我和我出错的地方吗?
#include<iostream>
using namespace std;
class test{
public:
typedef void (*callback_func_ptr)();
callback_func_ptr cb_func;
void get_pc();
void set_cb_ptr(void * ptr);
void call_cb_func();
};
void test::get_pc(){
cout << "PC" << endl;
}
void test::set_cb_ptr( void *ptr){
cb_func = (test::callback_func_ptr)ptr;
}
void test::call_cb_func(){
cb_func();
}
int main(){
test t1;
t1.set_cb_ptr((void *)(&t1.get_pc));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我尝试编译时遇到以下错误.
error C2276: '&' : illegal operation on bound member function expression
Run Code Online (Sandbox Code Playgroud) 我已经以递归方式将标签应用于目录.如何删除所有这些标签?
我想将数组的内容写入向量.
int A[]={10,20,30,40,50,60,70,80,90};
vector<int> my_vector;
Run Code Online (Sandbox Code Playgroud)
之前我曾经使用memcpy 将数组A的内容复制到另一个数组B. 我想使用my_vector而不是数组B.
如何在没有for循环的情况下一次性将数组A的内容写入my_vector?
我的程序中有一个结构
struct secret_structure{
string a;
string b;
void *c;
};
Run Code Online (Sandbox Code Playgroud)
我有这样的结构清单
std::map<string name, secret_structure> my_map
Run Code Online (Sandbox Code Playgroud)
我必须编写一个函数,通过将其与名称映射来返回结构.
get_from_map(string name, secret_structure * struct) //Kind of function
Run Code Online (Sandbox Code Playgroud)
我有以下选择:
在get_from_map函数中传递secret_structure的指针.get_from_map填充结构.我不想这样做,因为结构将被暴露.
我可以使用不同的函数从结构中返回不同的值.这里的结构不会暴露,但看起来不干净.
你能帮我解决任何其他选择,使结构本身不暴露.
我有一个
map<char,my_class*> mymap;
Run Code Online (Sandbox Code Playgroud)
其内容如下.
mymap[0]=('a', 0x1);
mymap[1]=('b',0x2);
mymap[3]=('c',0x3);
mymap[4]=('d',0x1);
Run Code Online (Sandbox Code Playgroud)
如您所见,我们对键'a'和'd'具有相同的值.我有一个for循环来删除地图中的指针.
for ( it=mymap.begin() ; it != mymap.end(); it++ ){
delete it->second;
}
Run Code Online (Sandbox Code Playgroud)
它崩溃是因为它试图删除0x1两次.我试过这样做
for ( it=mymap.begin() ; it != mymap.end(); it++ ){
if(!it->second){
delete it->second;
it->second = NULL;
}
}
Run Code Online (Sandbox Code Playgroud)
即使这样也会尝试将指针设置为NULL两次,这会导致异常.在地图中删除上述重复值的最佳方法是什么?
我有两个班级A班和B班.我想B类拥有的功能A级加上它自己的一些更多的功能.执行此操作的一种非常简单的方法是从A类继承B 类.但出于某些具体实施原因,我不能这样做.
我想到了另一个解决方案,我将在其中创建另一个包含所有虚函数的类C.的类A和B将继承C类.的类A将包含虚拟功能和实现B类也可以定义一组相同的功能,因此B类将具有功能A类.这是最佳解决方案吗?除了从A 类直接继承B 类之外,还有比这更好的解决方案吗?
我有三个文件.
file 1 这有类定义,类中的所有方法也在这里定义
file 2 上面的类的对象在这里实例化
file 3 这里我想使用文件2中创建的对象调用其中一个方法
我试图做上面的事情是因为我希望代码是模块化的.有一个更好的方法吗?你可以发布你可能有的任何其他解决方案吗?
我有
#define ADD 5
#define SUB 6
Run Code Online (Sandbox Code Playgroud)
给定值 5 和 6,我可以打印 ADD 和 SUB 吗?