#include<iostream.h>
class K
{ public:
K(int i) { k="i";}
int set1() const { return k; }
int set2() {return k;}
private:
int k;
};
int add1(const K &g1, const K &g2)
{
int sum= g1.set1( )+ g2.set1( );
return sum;
}
int add2( K &g1, K &g2)
{
int sum= g1.set1( )+ g2.set2( );
return sum;
}
void main( )
{
K k1(8), k2(17);
int s="add1"(k1, k2);
int y="add2"(k1,k2);
cout<<s<<endl;
}
如上述代码中,常引用函数add()只能调用常函数set1(),不可调用普通成员函数set2()
而引用函数add2()既可以调用常函数set1(),还可以调用普通成员函数set2().
常成员函数中的k不能改变,而普通成员函数中的k则可以赋新值。
同理,未经const 说明的成员函数不能操作“常对象”;既若一个对象说明为“常对象”,
则它只能调用常成员函数,不能调用其他成员函数;
而一般对象既能调用常成员函数,也能调用其他成员函数;
文章评论(0条评论)
登录后参与讨论