IntSet& insert(int e){
if (size < MAX_SIZE && !isElem(e)){
arr[size] = e;
size++;
}
return *this;
}
按书上的接口写了个集合类,写到insert函数的时候返回的是对象的引用
然后我在main里面进行了如下测试:
int main(){
IntSet set;
IntSet set2 = set.insert(1);
set2.print();
set2.insert(2);
set2.print();
set.print();
cout << &set2 << " " << &set << endl;
return 0;
}
set调用insert(1),并把返回值赋给set2,这样set2输出1,没问题
但是我在set2调用insert(2),结果set2输出1 2,set输出1。
set2不是引用了set么?为什么对set2的insert不会改变set的内容?
把insert函数改成返回指针的话set2的insert就能修改set的内容
这是为什么=w=
if (size < MAX_SIZE && !isElem(e)){
arr[size] = e;
size++;
}
return *this;
}
按书上的接口写了个集合类,写到insert函数的时候返回的是对象的引用
然后我在main里面进行了如下测试:
int main(){
IntSet set;
IntSet set2 = set.insert(1);
set2.print();
set2.insert(2);
set2.print();
set.print();
cout << &set2 << " " << &set << endl;
return 0;
}
set调用insert(1),并把返回值赋给set2,这样set2输出1,没问题
但是我在set2调用insert(2),结果set2输出1 2,set输出1。
set2不是引用了set么?为什么对set2的insert不会改变set的内容?
把insert函数改成返回指针的话set2的insert就能修改set的内容
这是为什么=w=