gpt4 book ai didi

c++ - '.' 之前的预期主表达式

转载 作者:可可西里 更新时间:2023-11-01 15:35:54 27 4
gpt4 key购买 nike

#include <iostream>
using std::cout;
using std::endl;

class square {

public:
double length, width;

square(double length, double width);
square();

~square();

double perimeter();
};

double square::perimeter() {
return 2*square.length + 2*square.width;
}

int main() {

square sq(4.0, 4.0);

cout << sq.perimeter() << endl;

return 0;
}

我正在尝试编写一个简单的类程序。我收到错误

in member function 'double square::perimeter()';
.cpp:21: error: expected primary-expression before '.' token
.cpp:21: error: expected primary-expression before '.' token

这是否意味着我必须使用 2*square::length + 2*square::width

最佳答案

square 是一个类型,不是一个对象;而不是

return 2*square.length + 2*square.width;

return 2*length + 2*width;

(隐含地等同于:

return 2*this->length + 2*this->width;

为了清楚起见,您可能会喜欢,或者可能不会喜欢。

2*square::length + 2*square::width 将是有效语法,如果 lengthwidth

  • static square 成员,或
  • 一些基类square的成员,或者
  • 一些命名空间square中的对象

关于c++ - '.' 之前的预期主表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9794328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com