c++中函数参数表问题

我定义了一个构造函数,其参数表是(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;
}

这样就能够正确地调用构造函数了。