C++ const对象
生活随笔
收集整理的這篇文章主要介紹了
C++ const对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C++ 中,const 也可以用來修飾對象,稱為常對象。一旦將對象定義為常對象之后,就只能調用類的 const 成員(包括 const 成員變量和 const 成員函數)了。
定義常對象的語法和定義常量的語法類似:
const class object(params);class const object(params);定義 const 指針:
const class *p = new class(params);class const *p = new class(params);class為類名,object為對象名,params為實參列表,p為指針名。兩種方式定義出來的對象都是常對象。
一旦將對象定義為常對象之后,不管是哪種形式,該對象就只能訪問被 const 修飾的成員了(包括 const 成員變量和 const 成員函數),因為非 const 成員可能會修改對象的數據(編譯器也會這樣假設),C++禁止這樣做。
常對象使用舉例:
#include <iostream> using namespace std;class Student{ public:Student(char *name, int age, float score); public:void show();char *getname() const;int getage() const;float getscore() const; private:char *m_name;int m_age;float m_score; };Student::Student(char *name, int age, float score): m_name(name), m_age(age), m_score(score){ } void Student::show(){cout<<m_name<<"的年齡是"<<m_age<<",成績是"<<m_score<<endl; } char * Student::getname() const{return m_name; } int Student::getage() const{return m_age; } float Student::getscore() const{return m_score; }int main(){const Student stu("小明", 15, 90.6);//stu.show(); //errorcout<<stu.getname()<<"的年齡是"<<stu.getage()<<",成績是"<<stu.getscore()<<endl;const Student *pstu = new Student("李磊", 16, 80.5);//pstu -> show(); //errorcout<<pstu->getname()<<"的年齡是"<<pstu->getage()<<",成績是"<<pstu->getscore()<<endl;return 0; }stu、pstu 分別是常對象以及常對象指針,它們都只能調用 const 成員函數。
總結
以上是生活随笔為你收集整理的C++ const对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++对象数组
- 下一篇: Spring Boot JDBC