您的位置:首页 > 其它

类或函数包装器

2015-07-03 17:31 357 查看
#include <iostream>
using namespace std;

template <typename T1,typename T2>
T1 volume(T1 t1, T2 t2) //包装器,实现一个操作接口,操作多个类的方法
{
return  t2(t1);//T2若是类,则类需要重载操作符()
}

int area(int num)
{
return num * 10;
}
class Area
{
public:
Area(int length, int width)
{
this->length_ = length;
this->width_ = width;
}
int operator()(int height)//类包装器,这里需要重载操作符()
{
return length_*width_*height;
}
private:
int length_;
int width_;
};

int main()
{
int height = 10;
cout <<volume(height,area)<< endl;

int length = 0;
int width = 10;
cout << length << "\t" << width << endl;
cout << "请输入长度和高度\n";
cin>>length>>width;
//cout << length << "\t" << width << endl;
Area area(length, width);
cout << "体积:"<<"    "<<volume(height, area) << endl;

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: