1
我正在编写一个选择排序程序。我刚刚发布了一些关于std :: vector的内容,但是这篇文章在另一个主题上。C++选择排序 - 插入方法和私有变量
我能够编译程序,但是当在main方法中调用insert()时,程序运行时发生运行时错误。
我的ArrayS具有下面的代码作为复制构造函数,并且在创建ArrayS时将nElems初始化为0。
[ArrayS.cpp]
ArrayS::ArrayS(int max)
{
std::vector<long> a;
nElems = 0;
}
void ArrayS::insert(long value) // put element into array
{
a[nElems] = value; // insert it
nElems++; // increment size
}
[ArrayS.h]
private:
std::vector<long> a;
int nElems;
现在,我需要得到在ArrayS.cpp/set方法来操纵nElems?我不知道你如何在C++中使用私有变量。
谢谢。
所以我可以完全忽视“nElems?”另外,std :: vector会改变我的程序的性质吗? – SndLt 2013-03-19 22:16:26
因此,使用std :: vector,没有必要在我的程序中有“insert”方法,对吗?因为我只是使用“push_back”而不是insert()? – SndLt 2013-03-19 22:18:27
@SndLt因为'a'是'private',所以只有成员函数可以访问它。这是一件好事,因为你可以控制它的访问方式。看我的编辑。 – 2013-03-19 22:20:37