我试图让我的头在C++封装。我有这个程序工作时,一切都在公共场合,但是当我将载体移动到私人,我无法访问与我的公共职能向量。我尝试过使用一位朋友,但无法使其工作。如何让我的addElement
函数查看矢量?访问一个私有变量
#include <iostream>
#include <vector>
using namespace std;
class MySet{
private:
vector<int> elements;
public:
MySet();
friend void addElement(int value);
};
MySet::MySet(){
vector <int> elements;
}
void MySet::addElement(int value){
elements.push_back(value);
}
void Print(vector<int>& v) {
vector<int>::iterator it;
for(it = v.begin(); it != v.end(); ++it) {
cout << (*it) << '\n';
}
}
int main(int argc, char *argv[]){
int value;
MySet set;
cout << "Enter your numbers,(enter -1 to end)" << endl;
while(cin){
cin>> value;
if(value==-1)
break;
set.addElement(value);
}
Print(set.elements);
system("PAUSE");
}
删除好友关键字。一个类的公共成员函数可以访问该类的私有成员。你的构造函数创建一个称为元素的局部向量,它立即被丢弃。 – 2015-03-18 21:03:12
'main()'不是一个公共'MySet'函数。改变'Print(set.elements);'像'set.print_elements();' – 2015-03-18 21:03:25
aaah,我明白了。它的打印功能使所有的麻烦大声笑。好吧,当我尝试访问它与集。 ,它不会在那里显示打印。 – user3225981 2015-03-18 21:08:38