#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;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个简单的类程序.我收到了错误
在成员函数'double square :: perimeter()'; .cpp:21:错误:在'.'之前预期的primary-expression token .cpp:21:error:在'.'之前预期的primary-expression 代币
这是否意味着我必须使用2*square :: length + 2*square :: width?
ild*_*arn 19
square是一种类型,而不是一个对象; 代替
return 2*square.length + 2*square.width;
Run Code Online (Sandbox Code Playgroud)
做
return 2*length + 2*width;
Run Code Online (Sandbox Code Playgroud)
(这隐含地与:
return 2*this->length + 2*this->width;
Run Code Online (Sandbox Code Playgroud)
您可以,或者请不要,为了清楚而优先选择.
2*square::length + 2*square::width将是有效的语法,如果length和width是
square,或square,或square