函數前修飾const與函數名后修飾const


#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
using namespace std;

class Base{
private:
    int x;
    char *p;
public:
    Base(void){
        x=0;
        p=(char *)malloc(sizeof(10));
        strcpy(p,"123456");
    }
    void Set_x(int tx){
        x=tx;
    }

    //函數名后面加const表示這個對象指針this所指之物是無法改變的
    int Get_x()const{
        //x++;這樣編譯報錯
        return x;
    }

    //返回值是指針類型,防止指針意外變化,所以用const修飾
    const char* ret_p(){
        return p;
    }
};

int main(){
    Base a=Base();
    printf("%d\n",a.Get_x());

    //char* y=a.ret_p(); 這樣編譯會出錯,需要const 修飾的
    const char* y=a.ret_p();
    printf("%s\n",y);
}

 

參考:高質量C++C 編程指南


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM