Je suis nouveau en C++ et je ne comprends pas pourquoi quand j'appelle mes méthodes vectorielles, elles ne sont pas reflétées dans le programme lorsqu'elles sont appelées dans une fonction à l'intérieur d'une classe, mais si je appelez-les en main, ils travaillent. Tout semble fonctionner correctement mais pour les méthodes push_back et redimensionnement codées dans la classe vector. Mais si je code v.push_back(9)
dans l'ensemble, cela fonctionne.La fonction de vecteur appelant ne fonctionne pas 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;
}
Pouvez-vous expliquer la ligne de code qui vous pose problème, et peut-être affiner votre exemple pour n'inclure que les parties pertinentes? –
@RetiredNinja juste l'appel de méthode push_back et resize aux fonctions de classe, le code à l'intérieur des méthodes ne change pas le vecteur. – Jordan
Quel vecteur? J'ai exécuté votre code, et 'itv' est définitivement changé. Vous devrez expliquer exactement quel est le problème. –