封装和const问题 我在C++分配中遇到了一个无法解决的问题。让我们这样说吧-只有当membervariable(指向char数组的指针)为public时,程序才会工作。但根据规则,它必须是私有的,并且应该能够通过公共成员方法访问它
以下是定义:封装和const问题 我在C++分配中遇到了一个无法解决的问题。让我们这样说吧-只有当membervariable(指向char数组的指针)为public时,程序才会工作。但根据规则,它必须是私有的,并且应该能够通过公共成员方法访问它,c++,constants,C++,Constants,以下是定义: private: char* _strPtr(); int _strLen; public: const char* getString(); 在重载的成员函数中,问题就出现了 const String operator+(const String string, const char *ch) { String temp; strcpy(temp.getString, string.getString()); strcat(string
private:
char* _strPtr();
int _strLen;
public:
const char* getString();
在重载的成员函数中,问题就出现了
const String operator+(const String string, const char *ch) {
String temp;
strcpy(temp.getString, string.getString());
strcat(string.getString(), ch);
return temp;
}
我收到错误消息,例如
invalid arguments Candidates are ; unsigned int strlen(const char *)
invalid arguments Candidates are ; const char* getString()
我看不出这是怎么解决的。我什么都试过了。如果有人能提供好的小费,我会很高兴的
正如-我在开始时所说-程序可以工作,但是在封装membervariable并在函数前面放置一个常量之后-它不再工作了
您正在定义
char*\u strprtr()
,它是返回char*
的函数的定义。可能您的意思是定义char*\u strpr
您是指temp.getString()
而不是temp.getString
?@keyser-是的,我更改了代码-但问题持续存在?错误?现在它与候选者const char*getString()
不匹配?有关如何在成员operator+=
中实现operator+
的好方法,请参阅。
invalid arguments Candidates are ; unsigned int strlen(const char *)
invalid arguments Candidates are ; const char* getString()