我尝试了很多,但我找不到答案。我发现的几乎所有答案都是关于在两个班级之间进行的。
我的问题是我想在一个成员函数中声明和定义一个字符串向量,然后我想要同一个类的另一个成员函数来修改所述向量,而它只是没有用完。这是我的代码:
void Game::draw_table(){
std::vector<std::string> L(3);
L[0] = "something";
L[1] = "something else";
L[2] = "yet another something";
std::cout << L[0] << std::endl;
std::cout << L[1] << std::endl;
std::cout << L[2] << std::endl;
}
然后我希望其他成员函数修改它:
void Game::play_game(){
//some code
if (coord1 == 1 && coord2 == 1)
L[0] = "new something";
}
一位朋友告诉我,由于他们在同一个班级,我不应该做任何事情,但它一直在说&#34;未声明的标识符L&#34;。
答案 0 :(得分:2)
看起来您已在成员函数中声明了一个局部变量,并希望它可以从另一个成员函数中看到。
如果希望变量在成员函数中可用,则必须在类声明中将其声明为类的member variable,而不是将其声明为函数的局部变量。
答案 1 :(得分:1)
您有两种解决方案可以将矢量声明为成员变量
#pragma once
#include <string>
#include <iostream>
#include <vector>
class Game
{
std::vector<std::string> _l;
public:
Game();
~Game();
void draw();
};
或者你也可以直接给你的函数
作为参数但成员变量声明似乎是最佳解决方案