使用指向成员函数的指针时出现问题
issue with using pointer to member function
这行代码给我带来了很多麻烦:
while(!list.add(list.*get().children()));
它脱离了上下文,但我只是尝试使用类成员函数指针 get((。有人可以提供建设性的反馈吗?
struct State
{
State *children();
};
class List
{
State *getBFS();
State *getDFS();
State *getUCS();
State *getGS();
State *getAStar();
public:
State *(List::*get)();
bool add(State *state);
List(short type)
{
switch(type)
{
case 0: get = &List::getBFS;
break;
case 1: get = &List::getDFS;
break;
case 2: get = &List::getUCS;
break;
case 3: get = &List::getGS;
break;
default: get = &List::getAStar;
}
}
};
int main()
{
List list(0);
while(!list.add((list.*get()).children()));
}
请注意,operator()
的优先级高于 operator.*
,因此您应该更改
list.*get()
自
(list.*get)()
编辑
你想要的应该是
while(!list.add(((list.* list.get)())->children()));
// ~~~~~ ~~
注 (1( get
是List
的成员;(2( get
的返回类型是指针(即 State*
(,所以你应该使用 ->
而不是 .
。
相关文章:
- 链表指针问题
- 指针问题:从不兼容的类型"int"分配给"int *"
- C++指针问题:如何修复这些代码中的错误?
- *++*++ppp,*++pp[1],*++(*(1+ppp)有什么具体的区别吗?(C/C++指针问题)
- C++ 入门加列表:10.9 "顶部"指针问题
- C++ 指针问题 - 通过方法更新指针
- 未分配正在释放的指针 - 指针问题
- 双指针问题通过函数传递错误
- 在C++中实现图形 DFS,指针问题
- 返回指针问题
- C++ - 有人有分析指针到指针问题的技巧吗?
- 选择排序指针问题
- 涉及删除操作的 C++ 指针问题
- 模板类指针问题 c++
- Swig和指针问题(python)
- 引用指针问题
- 函数指针问题
- 通过类型C++ 的继承树递归导致此指针问题
- 无法将文件读入字符数组(像往常一样,某些指针问题)
- 结构中的指针问题