c++的特殊用法讲解
class BaseClass {
public:
BaseClass();
void Fun1();
};
void (BaseClass::*pmfnFunc1)() = &BaseClass::Fun1;
class Derived : public BaseClass {
public:
Derived();
void Func2();
};
void (Derived::*pmfnFunc2)() = &Derived::Func2;
int main() {
BaseClass ABase;
Derived ADerived;
(ABase.*pmfnFunc1)();
//(ABase.*pmfnFunc2)();
(ADerived.*pmfnFunc1)();
(ADerived.*pmfnFunc2)();
return 0;
}
函数指针的用法:
先看一段代码吧
typedef void (*EVALUATOR)(int);
class Parameter{
EVALUATOR pEvaluator;
public:
Parameter() {}
inline EVALUATOR Evaluator(EVALUATOR peva) {
pEvaluator=peva;
return peva;
}
inline EVALUATOR Evaluator() {
return pEvaluator;
}
};
#include <iostream>
#include <cmath>
#include <string>
#include "Paramter.h"
void add(int);
int main(){
Parameter pa;
pa.Evaluator(add);
(*pa.Evaluator())(5);
system("pause");
}
void add(int a){
std::cout<<a<<std::endl;
}