gpt4 book ai didi

c++ - 没有匹配函数调用 ‘myclass::myclass()’

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:43:21 26 4
gpt4 key购买 nike

我正在编写一个简单的程序来计算面积,我得到的错误是:

no matching function for call to 'myclass::myclass()'

我无法理解此错误的原因以及解决方法。

#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;

应调用类的默认构造函数,但您没有定义默认构造函数。

成员函数area也没有多大意义,因为它不计算类对象的面积。

有效代码可能如下所示

#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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com