class twopoint{
protected:
double x,y;
public:
twopoint(double i,double j):x(i),y(j){
}
void setX(double NewX) {
x=NewX;
}
void setY(double NewY){
y=NewY;
}
double getX()const{return x;}
double getY()const{return y;}
};
最后两行的 double getX()const{return x;},double getY()const{return y;},那个const有什么作用的,书本没提到。。
const修饰变量的时候,表示该变量是常量,也就是不可以改变的变量。
当const放在成员函数"尾巴"上修饰成员函数时,则该成员函数被称为“常成员函数”,表示该成员函数不可以修改类的成员变量,这是为了保护类的成员变量不被修改。
const修饰变量的时候,表示该变量是常量,也就是不可以改变的变量。
当const放在成员函数"尾巴"上修饰成员函数时,则该成员函数被称为“常成员函数”,表示该成员函数不可以修改类的成员变量,这是为了保护类的成员变量不被修改。
const放在前面用于修饰变量是常量,这个你应该明白了。而const放在类的成员函数的参数列表之后,表示这是一个const成员函数,调用类成员函数时是与类的对象有关的,所以实际上调用成员函数时还有一个隐式传递的参数,即调用该函数的对象的指针――this指针,在成员函数体内可以直接使用这个this指针。而我们知道,对象可以是const的,就像第一种形式那样。此时指向该调用对象的指针自然就是“指向const变量的指针”,即const T* p。那么这里成员函数后面的const的作用也就明了了,它是修饰this指针,表示它是指向常量对象的指针。注意区别常量指针与指向常量的指针
表示该函数不会改变任何变量的值,如果在实现的时候不小心改变了某个变量的值,编译器会报错