【问题标题】:c++ when using functions function call missing argument [closed]c++ 使用函数时函数调用缺少参数[关闭]
【发布时间】:2014-11-10 10:31:18
【问题描述】:
void Circle::getXYr() {
    cout << "(x,y,R) = (" << x << "," << y << "," << r << ")" << endl;
}

double Circle::circArea() {
    return (r * r * PI);
}

double Circle::circPeri() {
    return (2 * r * PI);
}

void Circle::printCircle() {
    cout << "Printing circle " << getXYr << endl;
    cout << "Circle Area: " << circArea << endl;
    cout << "Circle Perimeter: " << circPeri << endl;
}

我无法使用 printCircle 函数:ERROR 错误 1 ​​错误 C3867: 'Circle::getXYr': function call missing argument list;使用 '&Circle::getXYr' 创建指向成员的指针

接下来的 2 个函数也一样。

【问题讨论】:

  • cout
  • 您在 cout 语句中的“函数调用”之后缺少括号。您应该在函数调用后面添加()

标签: c++ class


【解决方案1】:

它是函数,你必须这样调用它们。注意括号()

cout << "Printing circle " << this->getXYr() << endl;
cout << "Circle Area: " << this->circArea() << endl;
cout << "Circle Perimeter: " << this->circPeri() << endl;

this-&gt; 不是明确需要的。

您的第二个错误是由于 this->getXYr() 没有返回值。它返回void。它没有 basic_ostream 重载。

您应该将 getXYr() 的逻辑放入 printCircle() 函数中。或者在不调用 cout 的情况下调用该函数:

cout << "Printing circle ";
this->getXYr();
cout << "Circle Area: " << this->circArea() << endl;
cout << "Circle Perimeter: " << this->circPeri() << endl;

【讨论】:

  • getXYr 仍然给我一个错误:2 IntelliSense: no operator ">
  • 我实际上设法通过在另一行中修复 getXYr 。由于某种原因,我不知道我不能将此功能与 cout 一起使用。
  • 好吧,就像我说的,你试图打印 getXYr() 的返回输出。但是这个函数没有返回任何东西。查看更新的答案。
猜你喜欢
  • 2012-06-02
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 2016-04-16
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 2016-03-08
相关资源
最近更新 更多