C++ 如何在c++;

C++ 如何在c++;,c++,arrays,char,C++,Arrays,Char,我试图将字符数组传递给函数。将值设置到字符数组中。然后检索它并使用另一个函数打印。但却无法得到结果。这是密码 class cSummary{ private: char *cSummaryTable[2]; public: void printSummary(); void setSummary(char *ptr, int stage); char *getSummary(); }; void cSummary::prin

我试图将字符数组传递给函数。将值设置到字符数组中。然后检索它并使用另一个函数打印。但却无法得到结果。这是密码

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;
}
class-cssummary{
私人:
char*cSummaryTable[2];
公众:
作废打印摘要();
void setSummary(char*ptr,int stage);
char*getSummary();
};
void cssummary::printsummmary(){
char*cPtr=getSummary();
对于(int i=0;i<2;i++){

cout
getSummary
是个问题,因为它只返回第一个字符串。请注意
getSummary
setSummary
之间的不对称性,
setSummary
有一个
stage
参数,但是
getSummary
中没有这样的参数。这应该是有问题的线索。我会的像这样重新编码

char *cSummary::getSummary(int stage) {
    return cSummaryTable[stage];
}

void cSummary::printSummary() {
    for(int i = 0; i < 2; i++){
        cout << getSummary(i) << endl;
    }
}
char*cSummary::getSummary(int阶段){
返回cSummaryTable[阶段];
}
void cssummary::printsummmary(){
对于(int i=0;i<2;i++){

首先,这看起来更像C而不是C++。在C++中,你可以使用字符串向量。第二,将字符串文本传递给函数应该是“代码> const char */COD>第三。当你应该简单地返回<代码> CythyType < /代码>时,你的错误正在返回<代码> *CythyType < /C> > <代码> GeSimuly]()/代码>。