C++ 如何在c++;
据我所知,C++ 如何在c++;,c++,class,reference,C++,Class,Reference,据我所知,这是一个指针,*这是一个参考。因此,如果我有一个类Sample和一个类似的方法: Sample operator++(){ int i; for(i=0;i<this->length;i++){ this->array[i]+=1; } return *this; } 示例运算符++(){ int i; 对于(i=0;i长度;i++){ 此->数组[i]+=1; } 归还*这个; } 或者另一种方法是 Sample
这是一个指针,*这是一个参考。因此,如果我有一个类Sample
和一个类似的方法:
Sample operator++(){
int i;
for(i=0;i<this->length;i++){
this->array[i]+=1;
}
return *this;
}
示例运算符++(){
int i;
对于(i=0;i长度;i++){
此->数组[i]+=1;
}
归还*这个;
}
或者另一种方法是
Sample &operator++(){
int i;
for(i=0;i<this->length;i++){
this->array[i]+=1;
}
return *this;
}
Sample&operator++(){
int i;
对于(i=0;i长度;i++){
此->数组[i]+=1;
}
归还*这个;
}
在这两者之间,哪种方法是正确的?第一种方法将使用复制构造函数。也就是说,你得到了一份副本
第二个将只返回一个引用。因此,只有一个对象将存在,并且不会进行复制第一个对象将使用复制构造函数。也就是说,你得到了一份副本
第二个将只返回一个引用。因此,只存在一个对象,不进行复制第二个是惯用的,您正在实现前缀运算符+++
,它应该返回对self的引用。实际上,*这是一个左值示例
。没有参考资料。只有当*此
绑定到最终返回值时,您才能获得引用。第二个习惯用法是您正在实现前缀运算符+++
,它应该返回对self的引用。实际上,*此
是一个左值示例
。没有参考资料。只有当*此
绑定到最终返回值时,您才能获得引用。如果您仍然怀疑答案:第二个答案。如果您仍然怀疑答案:第二个答案。