首页 > 编程语言 >C++函数名后面有个const

C++函数名后面有个const

时间:2024-11-08 22:58:36浏览次数:1  
标签:const 函数 成员 C++ GetX 修改 有个 变量

‌函数名后面加const表示该函数是一个常成员函数,即该函数不会修改类的任何成员变量。‌

在C++中,常成员函数通过在函数声明和定义后添加const关键字来标识。常成员函数不能修改类的任何成员变量,这保证了类的接口的稳定性。例如:

  class Point { public: int GetX() const; // 常成员函数,不能修改成员变量xVal int GetY() const; // 常成员函数,不能修改成员变量yVal private: int xVal, yVal; };

在上面的例子中,GetX()GetY()都是常成员函数,因为它们不会修改xValyVal成员变量‌1。

常成员函数的用途和限制

  1. ‌用途‌:常成员函数通常用于获取类的状态信息,而不改变类的状态。例如,获取对象的属性值。
  2. ‌限制‌:常成员函数不能调用非const成员函数,因为非const成员函数可能会修改类的成员变量,这与const成员函数的定义相冲突。例如:   const Point p; p.SetPt(1, 2); // 错误,SetPt是修改成员变量的非const成员函数 p.GetX(); // 正确,GetX是常成员函数 在上面的例子中,尝试使用const对象调用非const成员函数SetPt会导致编译错误,因为SetPt可能会修改对象的成员变量,而p是一个const对象,其成员变量不应被修改‌

标签:const,函数,成员,C++,GetX,修改,有个,变量
From: https://www.cnblogs.com/chentiao/p/18536084

相关文章

  • C++中的继承
    在C++中,继承的方式有三种:public、protected 和 private。它们控制了基类成员在派生类中的访问权限。以下是这三种继承方式的区别:1. public 继承基类的 public 成员在派生类中保持 public。基类的 protected 成员在派生类中保持 protected。基类的 private 成员......
  • C++中的std::shared_ptr
    std::shared_ptr 是C++11标准库中的智能指针类型,用于管理动态分配的对象。与传统指针不同,std::shared_ptr 自动管理内存,并在不再使用时自动释放对象,以避免内存泄漏。它是一种共享所有权的智能指针,即可以让多个 std::shared_ptr 指向同一个对象,并且会记录有多少个 std::shar......
  • C++中类型转换static_cast
    static_cast<type> 是C++中的一种类型转换方式,用于在编译期进行静态类型转换。与C风格的强制类型转换不同,static_cast 更加安全和明确,因为它只允许特定的类型转换,避免了潜在的错误和歧义。static_cast 的用法static_cast<type>(expression) 将 expression 转换为 typ......
  • c++--拷贝构造函数&友元函数
    目录1.拷贝构造函数是什么2.拷贝构造函数的基本格式2.1默认拷贝构造函数(浅拷贝)2.2深拷贝(DeepCopy)2.3浅拷贝(ShallowCopy)2.3浅拷贝和深拷贝总结2.友元函数1.拷贝构造函数是什么拷贝构造函数是一个特殊的构造函数,用于在创建新对象时,用已有对象的数据来初始......
  • 每日OJ题_牛客_BC157素数回文_数学_C++_Java
    目录牛客_BC157素数回文_数学题目解析C++代码Java代码牛客_BC157素数回文_数学素数回文_牛客题霸_牛客网描述:现在给出一个素数,这个素数满足两点:1、  只由1-9组成,并且每个数只出现一次,如13,23,1289。2、  位数从高到低为递减或递增,如2459,87631。请你判断一下,这......
  • C++之setw
    1.什么是setwsetw是C++中一个用于控制输出宽度的操纵符(manipulator),它定义在<iomanip>头文件中。通过setw可以指定下一个输出项应占用的字符宽度,在格式化输出时非常有用。2.setw的作用setw(n)设置的宽度n表示下一个要输出的项所占的最小宽度。如果输出项的实际字......
  • C++之endl以及它与换行符的区别
    看下C++_primer上的一段话,并给予解释:1.endl是操纵符在C++中,endl是一种特殊的操纵符(manipulator),它的作用不仅是结束一行(相当于换行),还会刷新缓冲区。操纵符是一种可以影响输出行为的特殊值,比如endl、setw等。题外话想要了解更多关于setw的内容,可以看下这篇博客C++之set......
  • C++中类和结构体的互相继承
    在C++中,struct可以继承类,反之,类也可以继承struct。struct和类的唯一区别在于访问级别,默认情况下,struct的成员是public,而类的成员是private。以下是一个简单的例子:classBaseClass{public:voidBaseFunction(){std::cout<<"FunctioninBaseClass"<<std::endl;......
  • C++之fixed
    在C++中,fixed是一个操纵符(manipulator),用于指定浮点数的显示格式。在默认情况下,C++会使用科学计数法或定点(小数点)格式输出浮点数,具体取决于数值的大小和有效位数。然而,当使用fixed时,它会强制所有浮点数都以定点格式显示,即以小数点后的固定位数输出,不使用科学计数法。fixed......
  • 第二届城市建设与交通运输国际学术会议(UCT 2025) 2025 2nd International Conference
    @目录一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题一、会议详情二、重要信息大会官网:https://ais.cn/u/vEbMBz三、大会介绍据统计,我国常住人口城镇化率超过65%,部分城市城镇化率超过90%,未来预计还会不断提升。城市建设行业的发展仍处于蓬勃发展的时期。......