C++模板编程->成员函数指针模板参数
2014-04-05 14:02
447 查看
class some_value;
typename int (some_value::*some_value_mfp)(int);
template<some_value_mfp func>
int call(some_value &value ,int op){return (value.*func)(op);}
class some_value
{
int value;
public:
some_value(int _value):value(_value){}
int add_by(int op ){return value+=op;}
int sub_by(int op ){return value-=op;}
int mul_by(int op ){return value*=op;}
~some_value();
/* data */
};
int main(int argc, char const *argv[])
{
some_value v0(0);
cout<<call<&some_value::add_by>(v0,1)<<endl;
cout<<call<&some_value::sub_by>(v0,2)<<endl;
cout<<call<&some_value::mul_by>(v0,3)<<endl;
return 0;
}
typename int (some_value::*some_value_mfp)(int);
template<some_value_mfp func>
int call(some_value &value ,int op){return (value.*func)(op);}
class some_value
{
int value;
public:
some_value(int _value):value(_value){}
int add_by(int op ){return value+=op;}
int sub_by(int op ){return value-=op;}
int mul_by(int op ){return value*=op;}
~some_value();
/* data */
};
int main(int argc, char const *argv[])
{
some_value v0(0);
cout<<call<&some_value::add_by>(v0,1)<<endl;
cout<<call<&some_value::sub_by>(v0,2)<<endl;
cout<<call<&some_value::mul_by>(v0,3)<<endl;
return 0;
}
相关文章推荐
- C++模板编程->成员函数指针模板参数
- C++模板编程->函数指针模板参数
- C++模板编程->函数指针模板参数
- C++模板编程->指针及引用模板参数
- C++模板编程->指针及引用模板参数
- C++模板编程->整数模板参数
- thiscall仅仅应用于“C++”成员函数(this指针存放于CX寄存器,参数从右到左压)
- error: 函数调用缺少参数列表;请使用“&BinTree<char>::_PrintNode”创建指向成员的指针
- C++模板编程中只特化模板类的一个成员函数
- c++特性:指向类成员的指针和非类型类模板参数和函数指针返回值 参数推导机制和关联型别
- c++ 成员函数作为函数指针参数传入
- c++ 成员函数作为函数指针参数传入
- C++模板编程->整数模板参数
- C/C++学习之C提高----函数调用模型、指针做函数参数、字符串的基本操作、一级指针内存模型建立
- C++ 常量指针或者常量引用作为函数参数传递的原因
- C++带参数的类成员函数
- C++之指向数据成员的指针和指向成员函数的指针
- C/C++实现多参数函数编程
- 成员函数指针与高效C++委托 (delegate)
- 浅谈C++指针直接调用类成员函数