在成员函数错误中 c++
In member function errors c++
我在编译代码时收到一些错误。
circleTypeImp.cpp: In member function âdouble circleType::getRadius() constâ:
circleTypeImp.cpp:10: error: argument of type âdouble (circleType::)()constâ does not match âdoubleâ
circleTypeImp.cpp: In member function âdouble circleType::setAreaCircle() constâ:
circleTypeImp.cpp:15: error: invalid use of member (did you forget the â&â ?)
circleTypeImp.cpp: In member function âdouble circleType::setCircumference() constâ:
circleTypeImp.cpp:20: error: invalid use of member (did you forget the â&â ?)
pointTypeImp.cpp: In member function âvoid pointType::setXCoordinate(double)â:
pointTypeImp.cpp:9: error: âxâ was not declared in this scope
pointTypeImp.cpp: In member function âvoid pointType::setYCoordinate(double)â:
pointTypeImp.cpp:14: error: âyâ was not declared in this scope
pointTypeImp.cpp: At global scope:
pointTypeImp.cpp:23: error: prototype for âdouble pointType::getXCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:15: error: candidate is: double pointType::getXCoordinate() const
pointTypeImp.cpp:28: error: prototype for âdouble pointType::getYCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:16: error: candidate is: double pointType::getYCoordinate() const
我忽略了我的代码,我似乎看不出它有什么问题。如果有人可以向我指出需要做什么,我将不胜感激。我不是在找人为我做这件事,我只是需要一些帮助来解决这个问题。
//main.cpp
#include "pointTypee.h"
#include "circleTypee.h"
#include <iostream>
using namespace std;
int main()
{
pointType p;
circleType c;
double rad;
double area;
double circum;
double x;
double y;
cout << "Enter the x coordinate " << endl;
cin >> x;
cout << endl;
cout << "Enter the y coordinate " << endl;
cin >> y;
cout << endl;
cout << "The X & Y coordinates are: (" << x << "," << y << ")" << endl;
cout << "The area of the circle is: "; //Add
cout << "The circumference of the circle is: "; //Add
}
//PointType.cpp
#include "pointTypee.h"
#include <string>
#include <iostream>
void pointType::setXCoordinate (double xcoord)
{
xcoord = x;
}
void pointType::setYCoordinate (double ycoord)
{
ycoord= y;
}
void pointType::print() const
{
cout << "The center point is at (" << xcoord << "," << ycoord << ")" << endl;
cout << endl;
}
double pointType::getXCoordinate(double xcoord)
{
return xcoord;
}
double pointType::getYCoordinate(double ycoord)
{
return ycoord;
}
pointType::pointType(double xcoord, double ycoord)
{
xcoord=0;
ycoord=0;
}
//pointType.h
#ifndef POINTTYPEE_H
#define POINTTYPEE_H
#include <string>
using namespace std;
class pointType
{
public:
void print() const;
void setXCoordinate(double xcoord);
void setYCoordinate(double ycoord);
double getXCoordinate() const;
double getYCoordinate() const;
pointType(void);
pointType(double xcoord, double ycoord);
~pointType(void);
private:
double xcoord;
double ycoord;
};
#endif
//circleType.h
#ifndef CIRCLETYPEE_H
#define CIRCLETYPEE_H
#include "pointTypee.h"
class circleType : public pointType
{
public:
//circleType(double xcoord, double ycoord, double radius);
void print() const;
double setAreaCircle() const;
double setCircumference() const;
double getRadius() const;
circleType(double xcoord, double ycoord, double radius);
~circleType(void);
circleType();
//virtual ~circleType();
private:
double radius() const;
static double pie;
};
#endif
//circleTypeImp.cpp
#include "circleTypee.h"
#include "pointTypee.h"
#include <string>
#include <iostream>
double circleType::getRadius()const
{
return radius;
}
double circleType::setAreaCircle () const
{
return 3.14 * radius * radius;
}
double circleType::setCircumference() const
{
return 3.14 * 2 * radius;
}
circleType::circleType()
{
//circleType::circleType();
}
circleType::~circleType()
{
}
double pie = 3.14;
circleTypeImp.cpp: In member function âdouble circleType::getRadius() constâ:
circleTypeImp.cpp:10: error: argument of type âdouble (circleType::)()constâ does not match âdoubleâ
private:
double radius() const;
//...
return radius;
你 return 成员函数 radius()
,它 return 是一个双精度,但它不是一个双精度。我猜,你想要一个成员 double radius;
来代替。
circleTypeImp.cpp: In member function âdouble circleType::setAreaCircle() constâ:
circleTypeImp.cpp:15: error: invalid use of member (did you forget the â&â ?)
circleTypeImp.cpp: In member function âdouble circleType::setCircumference() constâ:
circleTypeImp.cpp:20: error: invalid use of member (did you forget the â&â ?)
这里也一样,你用的成员functionradius()
,不是double.
pointTypeImp.cpp: In member function âvoid pointType::setXCoordinate(double)â:
pointTypeImp.cpp:9: error: âxâ was not declared in this scope
pointTypeImp.cpp: In member function âvoid pointType::setYCoordinate(double)â:
pointTypeImp.cpp:14: error: âyâ was not declared in this scope
void pointType::setXCoordinate (double xcoord)
{
xcoord = x;
}
void pointType::setYCoordinate (double ycoord)
{
ycoord= y;
}
错误已经说明了,x
和 y
都没有声明。这应该是
void pointType::setXCoordinate (double x)
//...
void pointType::setYCoordinate (double y)
//...
pointTypeImp.cpp: At global scope:
pointTypeImp.cpp:23: error: prototype for âdouble pointType::getXCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:15: error: candidate is: double pointType::getXCoordinate() const
声明和定义不匹配
double pointType::getXCoordinate() const
double pointType::getXCoordinate(double)
pointTypeImp.cpp:28: error: prototype for âdouble pointType::getYCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:16: error: candidate is: double pointType::getYCoordinate() const
这里也一样。
我在编译代码时收到一些错误。
circleTypeImp.cpp: In member function âdouble circleType::getRadius() constâ:
circleTypeImp.cpp:10: error: argument of type âdouble (circleType::)()constâ does not match âdoubleâ
circleTypeImp.cpp: In member function âdouble circleType::setAreaCircle() constâ:
circleTypeImp.cpp:15: error: invalid use of member (did you forget the â&â ?)
circleTypeImp.cpp: In member function âdouble circleType::setCircumference() constâ:
circleTypeImp.cpp:20: error: invalid use of member (did you forget the â&â ?)
pointTypeImp.cpp: In member function âvoid pointType::setXCoordinate(double)â:
pointTypeImp.cpp:9: error: âxâ was not declared in this scope
pointTypeImp.cpp: In member function âvoid pointType::setYCoordinate(double)â:
pointTypeImp.cpp:14: error: âyâ was not declared in this scope
pointTypeImp.cpp: At global scope:
pointTypeImp.cpp:23: error: prototype for âdouble pointType::getXCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:15: error: candidate is: double pointType::getXCoordinate() const
pointTypeImp.cpp:28: error: prototype for âdouble pointType::getYCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:16: error: candidate is: double pointType::getYCoordinate() const
我忽略了我的代码,我似乎看不出它有什么问题。如果有人可以向我指出需要做什么,我将不胜感激。我不是在找人为我做这件事,我只是需要一些帮助来解决这个问题。
//main.cpp
#include "pointTypee.h"
#include "circleTypee.h"
#include <iostream>
using namespace std;
int main()
{
pointType p;
circleType c;
double rad;
double area;
double circum;
double x;
double y;
cout << "Enter the x coordinate " << endl;
cin >> x;
cout << endl;
cout << "Enter the y coordinate " << endl;
cin >> y;
cout << endl;
cout << "The X & Y coordinates are: (" << x << "," << y << ")" << endl;
cout << "The area of the circle is: "; //Add
cout << "The circumference of the circle is: "; //Add
}
//PointType.cpp
#include "pointTypee.h"
#include <string>
#include <iostream>
void pointType::setXCoordinate (double xcoord)
{
xcoord = x;
}
void pointType::setYCoordinate (double ycoord)
{
ycoord= y;
}
void pointType::print() const
{
cout << "The center point is at (" << xcoord << "," << ycoord << ")" << endl;
cout << endl;
}
double pointType::getXCoordinate(double xcoord)
{
return xcoord;
}
double pointType::getYCoordinate(double ycoord)
{
return ycoord;
}
pointType::pointType(double xcoord, double ycoord)
{
xcoord=0;
ycoord=0;
}
//pointType.h
#ifndef POINTTYPEE_H
#define POINTTYPEE_H
#include <string>
using namespace std;
class pointType
{
public:
void print() const;
void setXCoordinate(double xcoord);
void setYCoordinate(double ycoord);
double getXCoordinate() const;
double getYCoordinate() const;
pointType(void);
pointType(double xcoord, double ycoord);
~pointType(void);
private:
double xcoord;
double ycoord;
};
#endif
//circleType.h
#ifndef CIRCLETYPEE_H
#define CIRCLETYPEE_H
#include "pointTypee.h"
class circleType : public pointType
{
public:
//circleType(double xcoord, double ycoord, double radius);
void print() const;
double setAreaCircle() const;
double setCircumference() const;
double getRadius() const;
circleType(double xcoord, double ycoord, double radius);
~circleType(void);
circleType();
//virtual ~circleType();
private:
double radius() const;
static double pie;
};
#endif
//circleTypeImp.cpp
#include "circleTypee.h"
#include "pointTypee.h"
#include <string>
#include <iostream>
double circleType::getRadius()const
{
return radius;
}
double circleType::setAreaCircle () const
{
return 3.14 * radius * radius;
}
double circleType::setCircumference() const
{
return 3.14 * 2 * radius;
}
circleType::circleType()
{
//circleType::circleType();
}
circleType::~circleType()
{
}
double pie = 3.14;
circleTypeImp.cpp: In member function âdouble circleType::getRadius() constâ:
circleTypeImp.cpp:10: error: argument of type âdouble (circleType::)()constâ does not match âdoubleâ
private:
double radius() const;
//...
return radius;
你 return 成员函数 radius()
,它 return 是一个双精度,但它不是一个双精度。我猜,你想要一个成员 double radius;
来代替。
circleTypeImp.cpp: In member function âdouble circleType::setAreaCircle() constâ:
circleTypeImp.cpp:15: error: invalid use of member (did you forget the â&â ?)
circleTypeImp.cpp: In member function âdouble circleType::setCircumference() constâ:
circleTypeImp.cpp:20: error: invalid use of member (did you forget the â&â ?)
这里也一样,你用的成员functionradius()
,不是double.
pointTypeImp.cpp: In member function âvoid pointType::setXCoordinate(double)â:
pointTypeImp.cpp:9: error: âxâ was not declared in this scope
pointTypeImp.cpp: In member function âvoid pointType::setYCoordinate(double)â:
pointTypeImp.cpp:14: error: âyâ was not declared in this scope
void pointType::setXCoordinate (double xcoord)
{
xcoord = x;
}
void pointType::setYCoordinate (double ycoord)
{
ycoord= y;
}
错误已经说明了,x
和 y
都没有声明。这应该是
void pointType::setXCoordinate (double x)
//...
void pointType::setYCoordinate (double y)
//...
pointTypeImp.cpp: At global scope:
pointTypeImp.cpp:23: error: prototype for âdouble pointType::getXCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:15: error: candidate is: double pointType::getXCoordinate() const
声明和定义不匹配
double pointType::getXCoordinate() const
double pointType::getXCoordinate(double)
pointTypeImp.cpp:28: error: prototype for âdouble pointType::getYCoordinate(double)â does not match any in class âpointTypeâ
pointTypee.h:16: error: candidate is: double pointType::getYCoordinate() const
这里也一样。