如何解决没有与参数列表匹配的构造函数

在c++学习中遇到的错误

stock(char a[], int q = 1000, double p = 8.98) : quan(q), price(p) {
        strcpy(stockcode, a);
    }

这是一个接受字符串参数的构造函数,但是在编译器中出现了没有与参数列表匹配的构造函数的错误提示

解决方式是在char前加const

stock(const char a[], int q = 1000, double p = 8.98) : quan(q), price(p) {
        strcpy(stockcode, a);
    }

第一个函数中,参数a是一个字符数组,它没有被声明为常量。这意味着调用该函数时可以修改a指向的字符串常量,这可能会导致未定义的行为而出现错误。因此,在实际编程中应该尽量避免使用这种方式。

第二个函数中,参数a声明为了常量指针,即const char * 类型。这意味着调用该函数时不能修改a指向的字符串常量,从而确保了程序的安全性和可靠性。因此,建议在函数参数中使用const char*形式来表示字符串常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值