2017-04-16 3 views
0

Ich habe versucht, viel zu suchen, aber ich konnte keine Antwort finden. Fast jede Antwort, die ich fand, handelt von einem Übergang zwischen zwei Klassen.Wie übergibt man einen Vektor von einer Elementfunktion an einen anderen in derselben Klasse?

Mein Problem ist, dass ich einen Vektor von Zeichenfolgen in einer Mitgliedsfunktion deklarieren und definieren möchte, dann möchte ich eine andere Mitgliedsfunktion der gleichen Klasse, um besagten Vektor zu ändern, und es funktioniert einfach nicht. Hier ist mein Code:

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

und dann möchte ich diese andere Member-Funktion modifizieren:

void Game::play_game(){ 

//some code 

if (coord1 == 1 && coord2 == 1) 
    L[0] = "new something"; 
}  

Ein Freund erzählte mir, dass, da sie in der gleichen Klasse sind sollte ich nicht brauchen, um tun Sie alles, aber es sagt immer "Undeklared Identifier L".

+0

Ich denke, das ist C++, also habe ich es retagged. – halfer

+0

ein Großbuchstaben Namen sind schrecklich für Variablen – bolov

Antwort

2

Offenbar haben Sie eine lokale Variable in einer Elementfunktion deklariert und erwartet, dass sie von einer anderen Elementfunktion sichtbar ist.

Wenn eine Variable über Memberfunktionen hinweg verfügbar sein soll, müssen Sie sie innerhalb der Klassendeklaration als member variable der Klasse deklarieren und sie nicht als lokale Variable für die Funktion deklarieren.

1

Sie haben zwei Lösungen, die Sie Ihre Vektor als Mitglied Variable

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

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

    public: 
     Game(); 
     ~Game(); 

    void draw(); 
}; 

oder Sie können auch

nur direkt geben als Parameter an die Funktion erklären kann, aber die Membervariable Erklärung scheint der Beste zu sein Lösung

Verwandte Themen