C++的类中有两种定义:1.成员函数 2.数据成员
ps:以上是大概的讲,当然还有友元,既不是类的成员函数也不是数据成员,只是需要类中的一些数据在而类中声明一下而已。
对于成员函数而言,举个简单的例子
class Person{
private:
int age;
string name;
publuc:
void getAge(){
cout<<age;
}
}
这样显然是正确的,但是如果变成了const类成员函数则会发生一些变化,下面举两个例子说明:
class Person{
private:
int age;
string name;
publuc:
void getAge()const{
age=10;
cout<<age;
}
}
1.上面这个例子就是错误的,因为const类成员函数不能修改类中的数据成员的值,上面getAge这个类函数中就改变了age的值。
class Person{
private:
int age =10;
string name;
publuc:
void getAge()const{
cout<<age;
}
void knowAge(){
cout<<age;
}
}
...
...
int main()
{
Person one;
const Person two;
one.getAge(); // OK
two.getAge(); // OK
one.knowAge();// OK
two.knowAge();// It IS wrong
return 0;
}
2.上面这个例子是说明了const对象不能使用类中的非const函数!!