我定义了一个构造函数,其参数表是(char*date)
然后我在主函数中定义了一个对象dft(“1-MAR-2001”)它说有错误,错误显示为“与参数列表不匹配”
我这个构造函数的参数表不对应字符串吗?我该如何去改呢?
新版本编译器比较严格,const char * 和 char * 都不能互相赋值。以前版本是可以的。进行强制转换就可以了
dft((char*) "1-MAR-2001")
static const char*Findmouth(int m)
{
if (m==1){return"FEB";}
return NULL;
}
参考GPT和自己的思路:
根据你提供的信息,构造函数的参数类型为char*,而你在创建对象时传入了一个字符串常量。这会导致C++编译器认为你要传递一个const char*类型参数,与构造函数的参数类型不匹配。
为了解决这个问题,你可以将构造函数的参数类型改为const char*,或者在创建对象时使用一个char数组来代替字符串常量,例如:
class MyClass {
public:
MyClass(const char* date) {
// 构造函数的实现
}
};
int main() {
char date[] = "1-MAR-2001";
MyClass dft(date);
return 0;
}
这样就能够正确地调用构造函数了。