【问题标题】:I'm trying to do a void function to calculate area of a circle我正在尝试做一个 void 函数来计算圆的面积
【发布时间】:2016-03-21 00:09:47
【问题描述】:

我正在尝试编写一个 void 函数来计算圆的面积。到目前为止,这是我的代码:

Circle::Circle()
{
}
Circle::Circle(double r):Shape (){
    SetRadius(r);
}
double Circle::GetRadius(void) const{
    return radius;
}
void Circle::SetRadius(double r){
    this->radius = r;
}
void Area(double r){
    double area = pi(r*r);
}

Circle::~Circle()
{
}

我想不通,但我试图从我的函数中的 .h 访问私有 const 数据成员 pi,但它不允许。前几天我尝试启动它时让它工作,现在它不允许它。任何帮助都会很棒。

【问题讨论】:

  • 您需要包含您遇到的问题,但原因是您没有像这样将 (r*r) 乘以 pi:pi*(r*r)
  • 可能是pi * r * r?您正在尝试调用pi,就好像它是一个函数一样。
  • 它告诉我 pi 未定义。我需要将 const 变量放在构造函数中吗?
  • @MattRothenberg:你定义了pi吗?它在哪里定义?怎么样?
  • 也许你的意思是 void Circle::Area ,而不是定义一个非成员函数。你可以使用半径类成员而不是参数r

标签: c++ function constants geometry void


【解决方案1】:

请试试这个:

void Area(double r){
    double area = pi*(r*r);
}

您使用手写符号来表达 C++ 中的面积公式。 c++ 中的 pi(r*r) 代表对 pi 函数的函数调用。

【讨论】:

  • 宏通常定义为大写,而不是常量。
  • 虽然这似乎是 OP 要求的,但这是一个完全没用的功能。它计算局部变量中的面积,返回时立即销毁。我无法想象Area 函数不返回该区域,或者至少将其存储在类成员中。
  • @Carey Gregory 你是对的,它的使用较少,但它是它所要求的。
  • @milleniumbuq 你是对的。我下定决心使用了一个定义,但很明显它是一个私有常量
猜你喜欢
  • 2017-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-15
  • 2013-12-21
  • 1970-01-01
相关资源
最近更新 更多