我正在编写一个简单的程序来计算面积,我得到的错误是:
我无法理解此错误的原因以及如何解决。
#include <iostream>
using namespace std;
class myclass{
int length;
int breadth;
public:
myclass(int x, int y);
int area(int x, int y);
};
myclass::myclass(int x,int y ){
length=x;
breadth=y;
}
int myclass::area(int x, int y){
return x*y;
}
int main()
{
myclass a;
a.area(3,4);
}
最佳答案
在此声明中
myclass a;
应该被称为该类的默认构造函数,但是您没有定义默认构造函数。
成员函数区域也没有太大意义,因为它不计算该类对象的区域。
有效代码可能如下所示
#include <iostream>
class myclass
{
private:
int length;
int breadth;
public:
myclass(int x, int y);
int area() const;
};
myclass::myclass(int x,int y ) : length( x ), breadth( y )
{
}
int myclass::area() const
{
return length * breadth;
}
int main()
{
myclass a(3,4);
std::cout << "area = " << a.area() << std::endl;
}
您也可以通过以下方式声明构造函数
myclass( int x = 0, int y = 0 );
在这种情况下,它将是默认构造函数。
关于c++ - 没有匹配的函数来调用 ‘myclass::myclass()’,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25264525/