Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
封装和const问题 我在C++分配中遇到了一个无法解决的问题。让我们这样说吧-只有当membervariable(指向char数组的指针)为public时,程序才会工作。但根据规则,它必须是私有的,并且应该能够通过公共成员方法访问它_C++_Constants - Fatal编程技术网

封装和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()