Ich bin neu in C++ und ich kann nicht verstehen, warum, wenn ich meine Vektor-Methoden aufrufen sie nicht in das Programm reflektiert werden, wenn sie in einer Funktion innerhalb einer Klasse aufgerufen werden, aber wenn ich Nenne sie in main, sie arbeiten. Alles scheint gut zu funktionieren, außer für die Methoden push_back und resize, die in der Vektorklasse codiert sind. Aber wenn ich in der Hauptsache v.push_back(9)
code, funktioniert es.Vector Funktion Aufruf funktioniert nicht C++
#include <iostream>
#include "ITIntVector.h"
using namespace std;
int main() {
int index = 1, rsize = 10;
vector<int> v = { 1,2,3,4,5 };
ITIntVector itv;
vector<int> getV();
void setV(vector<int>&);
itv.push_back(index);
itv.resize(rsize);
system("pause");
}
#pragma once
#include <vector>
using namespace std;
class ITIntVector
{
vector<int> v;
public:
ITIntVector();
void push_back(int&);
void resize(int& i);
vector<int> getV();
void setV(vector<int>&);
};
#include "ITIntVector.h"
using namespace std;
#include <vector>
#include <string>
void ITIntVector::push_back(int& val) {
v.push_back(val);
}
void ITIntVector::resize(int& size) {
v.resize(size);
}
vector<int> ITIntVector::getV() {
return v;
}
void ITIntVector::setV(vector<int>& v) {
this->v = v;
}
Können Sie die Codezeile erklären, mit der Sie Probleme haben, und vielleicht Ihr Beispiel so eingrenzen, dass nur die relevanten Teile enthalten sind? –
@RetiredNinja nur die push_back und resize-Methode Aufruf an die Klassenfunktionen, ändert der Code in den Methoden nicht den Vektor. – Jordan
Welcher Vektor? Ich habe deinen Code ausgeführt, und 'itv' wurde definitiv geändert. Sie müssen genau erklären, was das Problem ist. –