c++中怎么面向对象求正方形面积,对象个数为3个,和面向过程比多了什么呢
#include <iostream>
using namespace std;
int Area(int r)
{
return r * r;
}
class Square
{
public:
Square(int r) : m_r(r) {}
int Area(void) { return m_r * m_r; }
private:
int m_r = 0;
};
int main()
{
int r;
//面向过程
cin >> r;//输入边长
int area = Area(r);//计算面积,直接计算一下
cout << "Area = " << area;//打印结果
//面向对象
cin >> r;//输入边长
Square s(r);//使用输入的边长构建正方体对象s,输入不同的边长构建不同的对象
area = s.Area();//计算面积,Area是正方体对象的一个方法
cout << "Area = " << area;//打印结果
return 0;
}
结构不同,过程很乱,对象很清晰
#include <iostream>
#include <algorithm>
class Square
{
public:
Square(double width = 1.0) : _width(width) {}
double area() const { return _width * _width; }
private:
double _width;
};
using namespace std;
int main()
{
Square s[] = {1, 2, 3};
for_each(begin(s), end(s), [](const auto &sq) { cout << sq.area() << ' '; });
return 0;
}