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();则会出错