当前位置:编程学习 > C/C++ >>

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++学习有几个部分

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,