#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;
}
类或函数包装器
最新推荐文章于 2025-07-29 09:18:46 发布

1112

被折叠的 条评论
为什么被折叠?



