【发布时间】:2018-12-22 08:10:51
【问题描述】:
我正在尝试将字符数组传递给函数。将值设置到字符数组中。然后检索它并使用另一个功能打印。但无法得到结果。这是代码
class cSummary{
private:
char *cSummaryTable[2];
public:
void printSummary();
void setSummary(char *ptr, int stage);
char *getSummary();
};
void cSummary::printSummary(){
char *cPtr = getSummary();
for(int i = 0; i < 2; i++){
cout << cPtr[i] << endl;
}
}
void cSummary::setSummary(char ptr[], int stage){
switch(stage){
case 0:
cSummaryTable[0] = ptr;
break;
case 1:
cSummaryTable[1] = ptr;
break;
}
}
char *cSummary::getSummary(){
return *cSummaryTable;
}
int main(int argc, char const *argv[])
{
cSummary summary;
summary.setSummary("first message!", 0);
summary.setSummary("second message!!", 1);
summary.printSummary();
return 0;
}
【问题讨论】:
-
首先,这看起来更像 C 而不是 C++。在 C++ 中,您可以只使用字符串向量。其次,将字符串文字传递给函数应该是
const char*。第三,您的错误是在getSummary()中返回*cSummaryTable,而您应该只返回cSummaryTable