在 C++ 中计算圆的尺寸
calculate dimensions of a circle in c++
#ifndef CIRCLE_H
#define CIRCLE_H
#include <QString>
#include <string>
using namespace std;
class Circle {
public:
//constructors
Circle();
Circle(double r);
//setter
void setRadius(double r);
//getter
double getRadius();
//calculate the diameter of a circle
double computeDiameter()const;
//calculate the area of a circle
double computeArea()const;
//calculate the Circumference of a circle
double computeCircumference()const;
//checks if radius of circle is bigger
**bool isBigger(const Circle& other) const;**
private:
//private data members
double m_Radius;
};
#endif // CIRCLE_H
#include "circle.h"
#include "math.h"
#include <iostream>
#include <QString>
#include <sstream>
using namespace std;
Circle::Circle()
{
m_Radius = 0;
}
Circle::Circle(double r)
{
m_Radius = r;
}
void Circle::setRadius(double r){
m_Radius = r ;
}
double Circle::getRadius(){
return m_Radius;
}
double Circle::computeDiameter()const{
return 2* m_Radius;
}
double Circle::computeArea()const {
return ( m_Radius* m_Radius*M_PI);
}
double Circle::computeCircumference()const {
return (2* m_Radius*M_PI);
}
#include <iostream>
#include <QTextStream>
#include "circle.h"
using namespace std;
int main(){
QTextStream cout(stdout);
Circle c1,c2; // input
c1.setRadius(3);
c2.setRadius(7);
cout << "Circle with radius " << c1.getRadius() << " has: " << endl;
cout<< "Diameter " << c1.computeDiameter() << " cm " <<endl;
cout<< "Area " << c1.computeArea() << " cm" <<endl;
cout<< "Circumference " << c1.computeCircumference()<< " cm " <<endl<<endl;
cout << "Circle with radius " << c2.getRadius() << " has: " << endl;
cout<< "Diameter " << c2.computeDiameter() << " cm " <<endl;
cout<< "Area " << c2.computeArea() << " cm" <<endl;
cout<< "Circumference " << c2.computeCircumference()<< " cm " <<endl<<endl;
return 0;
}
如果调用函数的 Circle 实例的半径大于(或小于(传递给函数的 Circle 实例的半径,则函数 isBigger(( 返回 true(或false(:我不知道如何实现这个函数。有人可以用简单的英语解释一下吗?
实现将如下所示:
bool Circle::isBiggerThan(const Circle& other) const
{
return m_Radius > other.m_Radius;
}
但是,使用运算符更习惯
:class Circle
{
// ...
friend bool operator >(Circle const &, Circle const &) const;
};
bool operator >(Circle const& lhs, Circle const& rhs) const
{
return lhs.m_Radius > rhs.m_Radius;
}
如果你知道自己的半径(m_Radius
或getRadius()
(和另一个圆的半径(other.getRadius()
(,那么你可以简单地比较它们,看看哪个半径更大,就像这样:
bool Circle::isBigger(const Circle &other) const
{
return m_Radius > other.getRadius();
}
举个例子,如果你有:
Circle c1;
Circle c2;
那么当且仅当c1
的半径大于c2
时,c1.isBigger(c2)
应该为真。
(我可能会isBiggerThan
调用该函数,以便更容易大声说出来。
你的意思是:
bool Circle::isBigger(const Circle& other) const
{
return m_Radius > other.getRadius();
}
这将简单地检查当前圆的半径(m_Radius
(与给定圆的半径。
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 计算缩放多边形的比例,得到给定的多边形面积
- 在C++中如何在没有pow的情况下进行基础计算
- 计算平均值,不包括上次得分
- 如何计算多映射中重复对的数量