2017-04-16 4 views
0

많은 검색을 시도했지만 답변을 찾을 수 없습니다. 내가 찾은 거의 모든 대답은 두 클래스 사이를 지나가는 것에 관한 것입니다.동일한 클래스의 다른 멤버 함수에서 벡터를 전달하는 방법은 무엇입니까?

내 문제는 하나의 멤버 함수에서 문자열의 벡터를 선언하고 정의하고 싶습니다. 그런 다음 동일한 클래스의 다른 멤버 함수가 해당 벡터를 수정하기를 원합니다. 여기 내 코드입니다 :

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"; 
}  

친구는 그들이 같은 클래스에있어 이후가 필요가 없습니다 말해 줬어 아무것도하지 말고 "선언되지 않은 식별자 L"을 계속 말합니다.

+0

저는 이것이 C++이라고 생각합니다. 그래서 태그를 다시 붙였습니다. – halfer

+0

하나의 대문자 이름은 변수에 대해 끔찍합니다. – bolov

답변

2

멤버 함수에서 로컬 변수를 선언하고 다른 멤버 함수에서 볼 수 있어야합니다.

변수를 멤버 함수에서 사용할 수있게하려면 클래스 선언에 클래스의 member variable으로 선언하고 함수에 대한 로컬 변수로 선언하지 않아야합니다.

1

당신은 당신이 멤버 변수

#pragma once 
#include <string> 
#include <iostream> 
#include <vector> 

class Game 
{ 
    std::vector<std::string> _l; 

    public: 
     Game(); 
     ~Game(); 

    void draw(); 
}; 

로 벡터를 선언 할 수 있습니다 또는 당신은 또한 단지 바로 함수에 매개 변수로 줄 수있는 두 가지 솔루션을

하지만 멤버 변수 선언 최선을 것 같다 솔루션

관련 문제