类定义为什么要这样class point{public:double x,y;point(){};point(double x1,double y1){x=x1;y=y1;}//向量赋值double operator%(const point &a)//叉积{return x*a.y-y*a.x;}double operator*(const point &b)//点积{return x*b.x+y*b.y;}point ope
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/30 07:46:55
![类定义为什么要这样class point{public:double x,y;point(){};point(double x1,double y1){x=x1;y=y1;}//向量赋值double operator%(const point &a)//叉积{return x*a.y-y*a.x;}double operator*(const point &b)//点积{return x*b.x+y*b.y;}point ope](/uploads/image/z/3497552-8-2.jpg?t=%E7%B1%BB%E5%AE%9A%E4%B9%89%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E8%BF%99%E6%A0%B7class+point%7Bpublic%3Adouble+x%2Cy%3Bpoint%28%29%7B%7D%3Bpoint%28double+x1%2Cdouble+y1%29%7Bx%3Dx1%3By%3Dy1%3B%7D%2F%2F%E5%90%91%E9%87%8F%E8%B5%8B%E5%80%BCdouble+operator%25%28const+point+%26a%29%2F%2F%E5%8F%89%E7%A7%AF%7Breturn+x%2Aa.y-y%2Aa.x%3B%7Ddouble+operator%2A%28const+point+%26b%29%2F%2F%E7%82%B9%E7%A7%AF%7Breturn+x%2Ab.x%2By%2Ab.y%3B%7Dpoint+ope)
类定义为什么要这样class point{public:double x,y;point(){};point(double x1,double y1){x=x1;y=y1;}//向量赋值double operator%(const point &a)//叉积{return x*a.y-y*a.x;}double operator*(const point &b)//点积{return x*b.x+y*b.y;}point ope
类定义为什么要这样
class point
{
public:
double x,y;
point(){};
point(double x1,double y1){x=x1;y=y1;}//向量赋值
double operator%(const point &a)//叉积
{return x*a.y-y*a.x;}
double operator*(const point &b)//点积
{return x*b.x+y*b.y;}
point operator/(double h)//数量积
{return point(x/h,y/h);}
point operator*(double h)//数量积
{return point(x*h,y*h);}
point operator-(const point &b)//向量-向量=向量
{return point(x-b.x,y-b.y);}
point operator+(const point &b)//向量+向量=向量
{return point(x+b.x,y+b.y);}
}a[maxn][6];
为什么一开始要打一个 point(){}; 不然编译不成功
为什么point(double x1,double y1){x=x1;y=y1;}没有返回类型比如void一类的?
类定义为什么要这样class point{public:double x,y;point(){};point(double x1,double y1){x=x1;y=y1;}//向量赋值double operator%(const point &a)//叉积{return x*a.y-y*a.x;}double operator*(const point &b)//点积{return x*b.x+y*b.y;}point ope
后面那个没有返回类型的是类的构造函数,构造函数,拷贝构造函数,还有析构函数,这三个类里面的函数都是没有返回值的.(没有显性返回值,其实会返还.这个可以去了解一下,不明白可以算了).记住这三个特殊的就是了.然后前面那个point(){};也就是是第五行的构造函数,这其实是构造函数的重载问题.这个函数不需要提供初值.一般情况不要这一句也不会有问题,但是如果你在后面定义类的时候就必须要提供初始值.就是point(double x1,double y1),每定义一个类必须提供两个double类型的值来供初始化.而你最后面有a[maxn][6],也就是说你定义类的二维数组a,而且,你没有提供初值的,所以,你的构造函数里面就必须有不提供初值的,也就是point(){};不知道这么说你懂了没~