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( )的使用,因为在第三章如果需编写类似功能的一般函数是需要带参数(形参)的。
而在此处作为类的成员函数又不需要带参数。为什么啊?
还是说只要是作为类的成员函数都不需要参数? 展开
#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
展开全部
类的成员函数有一个默认参数this。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询