C++ 在C+中打印字符数组时出现问题+;语言

C++ 在C+中打印字符数组时出现问题+;语言,c++,c++11,visual-c++,C++,C++11,Visual C++,我试图打印数组,但无法打印。有人知道为什么吗 在Main.cpp文件中当然有一个函数调用 我的代码: Game.cpp: #include "Game.h" Game::Game() { char example[] = "PASS"; } bool Game::PrintArray() { cout << example[0] << endl; return true; } #include <iostream> #includ

我试图打印数组,但无法打印。有人知道为什么吗

在Main.cpp文件中当然有一个函数调用

我的代码:

Game.cpp:

#include "Game.h"

Game::Game() {
    char example[] = "PASS";
}

bool Game::PrintArray() {
    cout << example[0] << endl;
    return true;
}
#include <iostream>
#include <array>
#include <iostream>
#include <string>

using namespace std;

#ifndef GAME_H_
#define GAME_H_

class Game {
private:
    char example[];
public:
    Game();
    bool PrintArray();

};

#endif /* GAME_H_ */
#包括“Game.h”
Game::Game(){
字符示例[]=“通过”;
}
bool游戏::PrintArray(){

cout您的代码有三个问题:

1) Game.h中的数组示例是一个零长度的静态数组(因此不能在其中添加字符) 解决方案:创建一个指向字符数组的常量指针

2) 在游戏的构造函数中创建一个新的变量示例,不要影响游戏中的变量。h->类中的变量只是不更新 解决方案:
example=“PASS”

3) 在func Game::PrintArray中,只打印第一个字符
解决方案:
cout您的代码有三个问题:

1) Game.h中的数组示例是一个零长度的静态数组(因此不能在其中添加字符) 解决方案:创建一个指向字符数组的常量指针

2) 在游戏的构造函数中创建一个新的变量示例,不要影响游戏中的变量。h->类中的变量只是不更新 解决方案:
example=“PASS”

3) 在func Game::PrintArray中,只打印第一个字符
解决方案:
P
您是否只需打印第一个字母
P
。也没有内存分配来保存数组。如果您的编译器是旧的,并且允许使用C++9X或C++03之类的东西,则此代码可能会编译。在新的编译器中,您将收到一个错误,因为
example=“PASS”
尝试将
const char*
写入
char*
,完全删除
const
。您只需打印第一个字母
P
。也没有内存分配来保存数组。如果您的编译器是旧的,并且允许使用C++9X或C++03之类的东西,则此代码可能会编译。在新的编译器中,您将得到一个错误,因为使用
example=“PASS”
尝试将
const char*
写入
char*
,完全删除
const
class Game {
private:
    const char* example;
public:
    Game();
    bool PrintArray();

};
Game::Game() {
    example = "PASS";
}

bool Game::PrintArray() {
    cout << example << endl;
    return true;
}
class Game {
private:
    std::string example;
public:
    Game();
    bool PrintArray();

};
Game::Game() {
    example = "PASS";
}

bool Game::PrintArray() {
    cout << example << endl;
    return true;
}