www.rtmj.net > C++ no mAtChing FunCtion For CAll to.........

C++ no mAtChing FunCtion For CAll to.........

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*

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

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

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

你要学会看懂编译器给你的信息来判断错误的原因,不然还是等于没学.no matching function for call to `xushu::set(xushu)' 就是说编译器没有找到签名为 xushu::set(xushu)的函数.要么是函数写错了,要么是调用的时候写错了.另外,你的代码我这里编译是没有错的.

你的现在输入的参数是string类类型,需要char *类型,可以使用string的c_str()成员函数来获得char *改成: if (strcmp(stu[j].num.c_str(),stu[max].num.c_str()) > 0 )

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

从错误的字面意思上看应该是没有找到匹配的函数声明;insert函数的形参加了const和没加const其实是一样的,都是一个函数,因为编译器会忽略top-level-const;至于那个fin应该是你自己定义的ifstream对象吧;对了,因为你是从文件中读取字符串的,因为字符串是const char*类型的,所以你那个形参只能用const string&

相关搜索:

网站地图

All rights reserved Powered by www.rtmj.net

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