64,639
社区成员
发帖
与我相关
我的任务
分享
class rectangle;
double half(const double x0, const double x1, const double y,
double (rectangle::*fptr)(const double))//注意声明
{
return 0;
}
class rectangle //矩形
{
private:
double m_b; //矩形宽度
double m_h; //矩形高度
public:
rectangle(const double b, const double h):m_b(b),m_h(h) {}
double get_a(const double y) {return m_b*y;} //返回矩形内高度为y范围内的面积
double get_y(const double a);
};
double rectangle::get_y(const double a)
{
return half(0,m_h,a,&rectangle::get_a);
//return half(0,m_h,a,get_a); //一样行
}
int main()
{
return 0;
}
class rectangle;
double half(const double x0, const double x1, const double y,
double (rectangle::*fptr)(const double))//注意声明
{
return 0;
}
class rectangle //矩形
{
private:
double m_b; //矩形宽度
double m_h; //矩形高度
public:
rectangle(const double b, const double h):m_b(b),m_h(h) {}
double get_a(const double y) {return m_b*y;} //返回矩形内高度为y范围内的面积
double get_y(const double a);
};
double rectangle::get_y(const double a)
{
return half(0,m_h,a,&rectangle::get_a);
//return half(0,m_h,a,get_a); //一样行
}
int main()
{
return 0;
}
#include <iostream>
class rectangle;
double half(const double x0, const double x1, const double y,
rectangle &t, double (rectangle::*fptr)(const double)) {
return x0 + x1 + y + (t.*fptr)(y);
}
class rectangle {
public:
rectangle(const double b, const double h)
: m_b(b), m_h(h) {
}
double get_a(const double y) {
return m_b*y;
}
double get_y(const double a) {
return half(0, m_h, a, *this, &rectangle::get_a);
}
private:
double m_b; //矩形宽度
double m_h; //矩形高度
};
int main() {
std::cout << rectangle(1.0, 2.0).get_y(3.0) << std::endl;
return (0);
}