我是新来的c + +,我不明白为什么当我调用我的矢量方法时,他们没有被反映在程序中时,他们被称为类中的函数,但如果我他们主要打电话给他们,他们工作。一切似乎都很好,但对于vector类中的push_back和resize方法编码。但如果我在主代码v.push_back(9)
,它的作品。调用不工作的矢量函数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;
}
你能解释一下你遇到的代码行吗,也许缩小你的例子只包含相关部分? –
@RetiredNinja只是对类函数的push_back和resize方法调用,方法内的代码不会改变向量。 – Jordan
哪个矢量?我已经运行你的代码,'itv'肯定是改变了。你需要解释到底是什么问题。 –