注册 登录
编程论坛 C++教室

类的定义问题,高手来看下啊!

whl20888 发布于 2008-11-18 16:51, 545 次点击
#include   <iostream.h>
#include  <math.h>
class  point
{
    public:
      float x,y,z;
    public:
      point(float a=3,float b=4,float c=5);
      point(point &p);
    void   negate(float m,float n,float k);
    void   norm(double l);
    void   print();
    
};
point::point(float a,float b,float c)
      {
          x=a;
          y=b;
          z=c;
      }
point:: point(point &p)
  {
          x=p.x;
          y=p.y;
          z=p.z;
  }
void point::negate(float m,float n,float k)
{
    m=-x;
    n=-y;
    k=-z;
    cout<<"这个点关于远点的对称点是:";
    cout<<"("<<m<<","<<n<<","<<k<<")"<<endl;
}
void   point::norm(double l)
{

    l=sqrt(x*x+y*y+z*z);
    cout<<"这个点和原点的距离是:"<<l<<endl;
}
void  point::print()
{
cout<<"这个点是:"<<"("<<x<<","<<y<<","<<z<<")"<<endl;
}
void main()
{
point t1(2,3,4);

point t2(t1);
t1.norm;
t2.print;

}
这个程序可以通过编译,没错误,但是有警告,尤其是三个成员函数,不能调用,说是函数引用什么的,麻烦高手解读下,
4 回复
#2
p1s2008-11-18 18:35
t1.norm;
t2.print;
这不是函数的调用
函数的调用应该有后面的参数啊
即使没有参数也要加上(),否则搞不清这个是成员数据还是成员函数了。
#3
lisu123452008-11-18 19:27
回复 2# 的帖子
除了这个还 是有错
[Error] D:\已装软件\C-Free Standard\temp\未命名1.cpp:47: no matching function for call to `point::norm ()'[Error]
D:\已装软件\C-Free Standard\temp\未命名1.cpp:35: candidates are: void point::norm(double)
#4
唯我天才2008-11-18 20:16
void   norm(double l);改为void   norm();
void   point::norm(double l)
{

    l=sqrt(x*x+y*y+z*z);
    cout<<"这个点和原点的距离是:"<<l<<endl;
}
改为
void   point::norm()
{
    double l;
    l=sqrt(x*x+y*y+z*z);
    cout<<"这个点和原点的距离是:"<<l<<endl;
}
这样就OK了。
主要是你在函数的调用时忘了参数,就算没有参数()也不能漏掉。
#5
whl208882008-11-18 21:09
呵呵,谢谢大家了!
1