C++ 作为类的成员函数不需要参数?为什么啊?

#include<iostream>#include<cmath>usingnamespacestd;classRectangle{doubleleft,top;doub... #include<iostream>
#include<cmath>
using namespace std;
class Rectangle{
double left,top;
double right,bottom;
public:
Rectangle(double l=0,double t=0,double r=0,double b=0);
void Assign(double l,double t,double r,double b);
void Show();
double Area();
double Perimeter();};
Rectangle::Rectangle(double l,double t,double r,double b){
left=l;top=t;
right=r;bottom=b;
}
void Rectangle::Assign(double l,double t,double r,double b){
left=l;top=t;
right=r;bottom=b;
}
void Rectangle::Show(){
cout<<"left-top point is("<<left<<"."<<top<<")"<<'\n';
cout<<"right-bottom point is("<<right<<"."<<bottom<<")"<<'\n';
}
double Rectangle::Area(){
return fabs((right-left)*(bottom-top));}
double Rectangle::Perimeter(){
return 2*(fabs(right-left)+fabs(bottom-top));}
int main(){
Rectangle rect;
rect.Show();
rect.Assign(100,200,300,400);
rect.Show();
Rectangle rect1(0,0,200,200);
rect1.Show();
rect1.Assign(100,200,300,400);
rect1.Show();
cout<<"square"<<rect.Area()<<'\t'<<"zhouchang"<<rect.Perimeter()<<endl;
cout<<"square"<<rect1.Area()<<'\t'<<"zhouchang"<<rect1.Perimeter()<<endl;
return 0;
}

注意成员函数void Show( )、double Area () 、double Perimeter( )的使用,因为在第三章如果需编写类似功能的一般函数是需要带参数(形参)的。
而在此处作为类的成员函数又不需要带参数。为什么啊?

还是说只要是作为类的成员函数都不需要参数?
展开
 我来答
漫步轮回岁月
2011-04-28 · 超过19用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:36.2万
展开全部
因为Rectangle类中定义了私有的成员变量double left,top;double right,bottom;
当定义了Rectangle类的对象时,该对象就有了成员变量,因此类内的成员函数不再需要参数了。
匿名用户
2011-04-28
展开全部
类的成员函数有一个默认参数this。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式