CPP问题集合

1 函数后带const,如:

    ResultType operator()( const unsigned char* a, const unsigned char* b, int size ) const;
直接看例子:
class   R  
{  
public:   
R(int   r1,   int   r2)   {   R1=r1;   R2=r2;   }  
void   print();  
void   print()   const;  
private:  
int   R1,   R2;  
};   
void   R::print()  
{  
cout<<R1<<R2<<endl; 
cout<<"it's normal obj\n";
}   
void   R::print()   const  
{  
cout<<R1<<R2<<endl;  
cout<<"it's const obj\n";
}   
void   main()  
{  
R   a(5,   4);  
a.print();  
const   R   b(20,   52);  
b.print();  
  }  
输出为:
54
it's normal obj
2052
it's const obj
Press any key to continue
说明如果对像是常对像,将调用void   print()   const;
有趣的是如果去掉非const的print函数,R a(5,4) a.print();会调用const的print函数,而若是去掉const的printf函数,const   R   b(20,   52);  b.print();则会出错  
 
posted @ 2013-01-11 23:14  yurius  阅读(176)  评论(0编辑  收藏  举报