【发布时间】:2011-01-12 05:23:37
【问题描述】:
// Penguin.h
#include <map>
#include <iostream>
class Penguin
{
typedef void (Penguin::*PenguinMet)();
std::map<int, PenguinMet> Methods;
void Move();
int p;
public:
Penguin();
void Walk();
};
Penguin::Penguin()
{
p = 0;
Methods[0] = &Penguin::Move;
}
void Penguin::Move()
{
std::cout << p << std::endl;
}
void Penguin::Walk()
{
this->*Methods[p];
*this.*Methods[p];
}
还有这个 main()
// Main.cpp
#include "Penguin.h"
int main()
{
Penguin Tux;
Tux.Walk();
return 0;
}
但是当我运行它时 p 永远不会被打印出来。
我做错了什么?
谢谢
【问题讨论】:
标签: c++ map member-function-pointers