error: no matching function for call to 'Ball::Ball()'
时间: 2023-06-13 18:04:22 浏览: 103
这个错误通常是由于你在创建一个对象时没有为它提供必要的构造函数参数导致的。在 C++ 中,如果你定义了一个带有参数的构造函数,则编译器不会为你自动生成默认的无参构造函数。因此,当你尝试创建一个没有参数的对象时,编译器就会报错。
解决方案有两个:
1. 提供一个无参构造函数
你可以在你的类中添加一个无参构造函数,以便在需要时可以创建一个没有参数的对象。例如:
```
class Ball {
public:
Ball() {} // 添加一个无参构造函数
Ball(int size) : m_size(size) {} // 添加一个带参构造函数
private:
int m_size;
};
```
这样,你就可以创建一个没有参数的对象了:
```
Ball myBall; // 此时不会再出现上述错误。
```
2. 提供构造函数参数
如果你想创建一个带有参数的对象,你需要提供构造函数所需的参数。例如:
```
Ball myBall(5); // 创建一个大小为 5 的球。
```
这里我们提供了一个整数参数,用于初始化球的大小。
希望这能帮到你解决问题。
相关问题
error: no matching function for call to 'strcpy'
error: no matching function for call to 'strcpy'是一个编译错误,表示在调用strcpy函数时找不到合适的函数。这通常是因为传递给strcpy函数的参数类型不正确或者参数个数不匹配。要解决这个问题,你需要检查参数的类型是否正确,并确保传递给strcpy函数的参数个数与函数定义中所需的参数个数相匹配。
: error: no matching function for call to 'AMediaCodec_getOutputBuffer' uint8_t *outputBuf = AMediaCodec_getOutputBuffer(codec, outIdx, &info);怎么解决
如果编译出现 no matching function for call to 'AMediaCodec_getOutputBuffer' 的错误,可能是因为您的环境没有正确链接到 libmediandk.so 库文件。请确保您的 Android.mk 文件中声明了正确的库依赖关系,例如:
```
LOCAL_LDLIBS := -llog -lmediandk
```
如果您已经正确声明了库依赖关系,请检查您的代码是否包含 AMediaCodec_getOutputBuffer 函数的声明,或者是否包含正确的头文件引用。您可以在代码开头添加以下语句来引用正确的头文件:
```
#include <media/NdkMediaCodec.h>
```
阅读全文