在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*形式来表示字符串常量。