我試圖讓我的頭在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