www.rtmj.net > C++ Error: no mAtChing FunCtion For CAll to XXX问题

C++ Error: no mAtChing FunCtion For CAll to XXX问题

这个是因为你的第一个形参是const char[5], 这样的话相当于你的数组是常量数组.如果你传入的不是引用的话,在调用函数传入形参的时候,相当于把实参的拷贝赋值给形参.对于const修饰的常量数组是不能进行赋值的,当你调用func这个函数时,编译器会寻找形参类型符合条件的func函数进行函数匹配,编译器希望找到的函数是func(char[5], int&)而不是func(const char[5], int&).

test.cpp:4: error: no matching function for call to 'Statuslogfile::Statuslogfile(const char [8])' 这个错误是由于构造函数接受的输入是字符串(char*),而不是常量字符串(const char*),你用“log.dat"作为参数的话就会出现找不到匹配的构造函数的错误了.如果先赋值一个字符串char* str="log.dat"再用str作为构造函数的参数就可以了.

解决办法有3种:1.将Circle(int a=0,int b=0,int r=0)改成Circle(int a=0,int b=0,int r=0):Point(a,b)2.将Point(int a,int b)改成Point(int a=0,int b=0)3.为类Point添加默认构造函数:Point(){x=y=0;}

问题1:声明:Product(char *n); Product(char *n, double p=0); 调用:Product p1("car"); 存在二义性错误,编译器不知道究竟该调用上面两个构造函数中的哪一个.问题2:声明:Product(char *n); 调用:Product p1("car"); 声明是char*

在主函数第一行加下面的行void FirstFitPack(int [],int ,int );

没有default构造函数你的Troot改成Troot(0) 或者把构造函数改成point(char c_=0)

C++ 的吧?没有匹配到的函数.这个函数可能是构造函数,也可能是方法.不匹配的原因可能是打错了;也可能是你参数传的不对,比如要求接收两个参数你只传了一个,或者要求接收一个 *XXX 类型的你传了个 *YYY 类型的.具体问题具体分析,自己看看你的代码吧.

我用的compiler是minG,没问题.而且你的main里面压根儿没有call Point::Point(Point) 这个constructor,很奇怪.再看看别人怎么说的.

报错是参数类型不对 你把 unsigned char temp;改为 char temp;试一下

你好!你main.cpp的代码呢?打字不易,采纳哦!

相关搜索:

网站地图

All rights reserved Powered by www.rtmj.net

copyright ©right 2010-2021。
www.rtmj.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com