C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > C++ 常量成员函数

C++ 常量成员函数学习笔记

作者:Totn

这篇文章主要为大家介绍了C++ 常量成员函数学习笔记,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

C++ 成员函数

C++的类中, 在成员函数的函数声明有末尾使用const 修饰, 则表明该函数为常量成员函数.

它具有以下两个特点:

(常量调常量, 非常随便调)

常量成员对象的定义

class Myclass {
public:
    void setName(const std::string& newName); // 非常量成员函数
    void print() const;                  // 常量成员函数
private: 
    std::string name;
};
void Myclass::setName(const std::string& newName) {
    name = newName;
}
// 常量成员函数, 不会修改对象自己的数据
void Myclass::print() const {
    std::cout << "Myclass name: " << name << std::endl;
}
int main() {
    Myclass myc;
    myc::setName("Good");
    myc::print(); // output: "Myclass name: Good"
    const Myclass constMycls;
    // constMycls是常量对象, 所以不能调用setName
    constMyclass::print(); // output: "Myclass name: " name是空值
}

关于常量引用

在C++中,函数参数的类型可以分为传值调用(by value)、引用调用(by reference)和常量引用调用(by const reference)三种方式。在以上代码中,const std::string& newName是使用常量引用调用方式来传递参数。

使用const关键字修饰参数类型std::string&,表示这个引用参数是一个常量引用,即在函数内部不允许修改传入的参数。这样设计的目的有以下几点意义:

总结

使用const std::string&作为参数类型,既可以避免不必要的拷贝开销,又能够支持传递常量和非常量对象,并且明确表示函数不会修改传入的参数。这样设计可以提高代码的效率和可读性。

以上就是C++ 常量成员函数学习笔记的详细内容,更多关于C++ 常量成员函数的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文