首页上一页 1  下一页尾页 1 条记录 1/1页
        <>中关于运算符重载的问题(2011-9-22) 
                 	
                        发表在C语言图书答疑
                        2011-09-23                                                
                    		
                                                                            	
                        
                        
                    
                    
                    	是否精华
                    	是
                    	否
                    
                    
                    
                            版块置顶:
                            是
                            否
                        
                    
                                           你好!
一、该书P132页讲了关于重载运算符的相关知识,根据例5.20,我在C++中运行了如下程序:
#include<stdio.h>
class CBook
{
public:
int m_Pages; //此处如果将int换成float
void OutputPages()
{
printf("%d\n",m_Pages); //将%d换成%f
}
CBook operator+(const CBook &book)
{
CBook bk;
bk.m_Pages=m_Pages+book.m_Pages;
return bk;
}
	
}
main()
{
CBook vbBook,vcBook,vfBook;
vbBook.m_Pages=9;
vcBook.m_Pages=20;
vfBook=vbBook+vcBook;
printf("vfBook=%d.\n",vfBook); //将%d换成%f
vfBook.OutputPages();
return vfBook;
}
结果表明该程序是可以通过的,运行结果为vfBook=29,29,但是如果按注释中的要求将数据成员m_Pages的类型改为“float”型后,程序运行的结果是不正确的(vfBook=0.000000,29.000000),这是为什么?看上去这样改并没有逻辑错误啊?
二、P136页讲了运算符重载的基本准则,其中提到“一元操作数”和“二元操作数”的概念,请问什么是“一元操作数”和“二元操作数”?能否举例说明。
                
        	
        
        
    一、该书P132页讲了关于重载运算符的相关知识,根据例5.20,我在C++中运行了如下程序:
#include<stdio.h>
class CBook
{
public:
int m_Pages; //此处如果将int换成float
void OutputPages()
{
printf("%d\n",m_Pages); //将%d换成%f
}
CBook operator+(const CBook &book)
{
CBook bk;
bk.m_Pages=m_Pages+book.m_Pages;
return bk;
}
}
main()
{
CBook vbBook,vcBook,vfBook;
vbBook.m_Pages=9;
vcBook.m_Pages=20;
vfBook=vbBook+vcBook;
printf("vfBook=%d.\n",vfBook); //将%d换成%f
vfBook.OutputPages();
return vfBook;
}
结果表明该程序是可以通过的,运行结果为vfBook=29,29,但是如果按注释中的要求将数据成员m_Pages的类型改为“float”型后,程序运行的结果是不正确的(vfBook=0.000000,29.000000),这是为什么?看上去这样改并没有逻辑错误啊?
二、P136页讲了运算符重载的基本准则,其中提到“一元操作数”和“二元操作数”的概念,请问什么是“一元操作数”和“二元操作数”?能否举例说明。

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
                







 
                     
                     
					 
						 
						 
						 
						