As we all konw,const可以用來修飾變量,那麼const是否能用來修飾對象呢?關於這一點,咱們能夠作一個小實驗,實驗一下:編程
#include <stdio.h> #include <stdlib.h> class Dog{ private: int foot; int ear; public: Dog (){ this->foot = 4; this->ear = 2; } int getFoot ( void ){ return this->foot; } int getEar ( void ){ return this->ear; } void setFoot ( int foot ){ this->foot = foot; } void setEar ( int ear ){ this->ear = ear; } }; int main ( int argc, char** argv ){ const Dog hashiqi; system ( "pause" ); return 0; }
運行以後:
咱們發現,程序並無報錯,也就是說,用const修飾對象是徹底能夠的。那麼,好比,咱們如今想要使用這個const修飾的對象。好比:ide
printf ( "the foot :%d\n", hashiqi.getFoot() );
運行一下程序,咱們能夠發現:
程序報錯了。
由此可知,咱們用const修飾的對象,不能直接調用成員函數。那麼,該怎麼辦呢?答案是調用const成員函數。
先來看一下const成員函數的格式:函數
Type ClassName:: function ( Type p ) const
也就是說,只要在函數後加上一個const就能夠了。那麼,咱們來編程實驗一下,是否能夠this
int getFoot ( void ) const{ return this->foot; } int getEar ( void ) const{ return this->ear; }
const Dog hashiqi; printf ( "the foot :%d\n", hashiqi.getFoot() );
運行以後,
乜有錯誤,那麼來看一下它的運行結果。
code