我尝试打印一个数组,但我不能。有谁知道为什么吗?
在Main.cpp文件中,当然有一个函数调用。
我的代码:
Game.cpp:
LR
Game.h:
#include "Game.h"
Game::Game() {
char example[] = "PASS";
}
bool Game::PrintArray() {
cout << example[0] << endl;
return true;
}
答案 0 :(得分:2)
您的代码有三个问题:
1)Game.h中的数组示例是长度为零的静态数组(因此您不能在其中添加字符) 解决方案:创建指向字符数组的const指针
2)在游戏的构造函数内,创建一个NEW变量示例,不要影响Game.h中的变量。h->您在类中的变量只是不更新
解决方案:example = "PASS";
3)在func Game :: PrintArray中,您仅打印第一个字符
解决方案:cout << example << endl;
Game.h:
class Game {
private:
const char* example;
public:
Game();
bool PrintArray();
};
Game.cpp:
Game::Game() {
example = "PASS";
}
bool Game::PrintArray() {
cout << example << endl;
return true;
}
但更正确的解决方案是使用std::string
。然后,您不必担心已分配/未分配的内存:
Game.h:
class Game {
private:
std::string example;
public:
Game();
bool PrintArray();
};
Game.cpp:
Game::Game() {
example = "PASS";
}
bool Game::PrintArray() {
cout << example << endl;
return true;
}