C语言之const对象的定义

来源:爱站网时间:2022-10-26编辑:网友分享
在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 的用法不理解,请猛击《C语言const的用法详解》。

一旦将对象定义为常对象之后,不管是哪种形式,该对象就只能访问被 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();  //error
    cout<<stu.getname()<<"的年龄是"<<stu.getage()<<",成绩是"<<stu.getscore()<<endl;

    const Student *pstu = new Student("李磊", 16, 80.5);
    //pstu -> show();  //error
    cout<<pstu->getname()<<"的年龄是"<<pstu->getage()<<",成绩是"<<pstu->getscore()<<endl;

    return 0;
}

本例中,stu、pstu 分别是常对象以及常对象指针,它们都只能调用 const 成员函数。

C语言之const对象的定义不知道朋友们都理解清楚了吗!遇到不懂的技术问题如果不会处理,可以来爱站技术频道网站找小编咨询。更多精彩内容来js.aizhan.com。

上一篇:C语言编程中关于命名冲突的解决方法

下一篇:C语言之static的详细介绍

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载