C++学习 类的成员函数 中遇到的问题
class sales_item{
double avg_price() const;
bool seles_item (const sales_item &rhs) const
{return isbn==rhs.isbn;}
private:
std::string isbn;
unsigned units_sold;
double revenue;
};
一直看不懂、纠结了好久、实在能力范围内…
这段代码中的【isbn==rhs.isbn】这段的操作是两个对象的比较? 为什么?求详细的解说、详细的。。
还有this的指针引入又是怎么回事?
看书上的、实在不懂……
追问:来自手机问问谢谢、还是不太明白、我跳过直接学后面的了、看到时候重温的时候、会不会不一样。。
答案:先this
我举个例子
一个函数
CLASS{
PRIVATE:
int i;
PUBLIC:
void(int i){
i = i;
}
}
//请注意这里,你觉得是那个 i 赋值给那个 i 呢 我类里面成员变量有一个 i ,我成员函数里面有一个参数是 i 这样就出现奇异了不是么(*^__^*) 嘻嘻,
所以编译器做出来的代码是这样的 this.i=i this代表我的CLASS类 点代表取出里面的变量,this.i 就是我拿出类里面 i 这个变量 -> private : int i 这个 i 哦,好把外面的 i 没有这个this 那么他就是函数传递参数里面的这个i -> void(int i) 这个i
}
}
再来解释
isbn==rhs.isbn
bool seles_item (const sales_item &rhs) const
{return isbn==rhs.isbn;}
这个是函数 他传递了一个类的对象
这里编译器做出的代码 是这样的
this.isbn = rhs.isbn
this .isbn 代表我现在类里面的 isbn 变量,但是你要注意哦bool seles_item (const sales_item &rhs) 你这个函数传递了一个 sales_itern 进去
我现在要拿出他的 isbn
那就是rhs.isbn 我拿出来了 现在我用这个我传递的和我本身的做对比
返回一个BOOL值 真假是的,返回的是他们比较的结果 true或者false,
this指针是属于类对象的,没个类对象都有一个this指针 ,他指向的是类对象在内存中的地址,如果还有疑问请发邮件
上一个:C++学习中遇到的问题,求解答
下一个:c++学习有几个部分