在C语言中,括号前的const如何改写成长尾?
- 内容介绍
- 文章标签
- 相关推荐
本文共计335个文字,预计阅读时间需要2分钟。
在C++中,const关键字通常用于指定变量或函数参数为常量,即它们的值在函数执行期间不可更改。在函数签名中使用const通常意味着该函数不会修改传入的参数。以下是对所给内容的简化修改:
在花括号前的const表示函数是const成员函数,意味着函数不会修改对象的状态。例如:virtual void print(int chw, int dus) const;这表明print函数不改变对象数据成员的值,因此代码中似乎遗漏了const。
不知为何,即使代码中没有显式使用const,函数签名中仍然包含const关键字。这很奇怪,因为如果没有const,函数将有可能修改对象的数据。
非常感谢您的提问!函数签名中的const表示函数是常量成员函数。
只是想知道为什么虚函数的语法在花括号之前使用const,如下所示:virtual void print(int chw, int dus) const;
顺便说一句,代码似乎没有const,这很有趣..不知道为什么?
非常感谢!
函数签名中的const表示const成员函数 – Anthony Williams对其影响给出了 great answer.请注意,在这方面虚拟成员函数函数没有什么特别之处,constness是一个适用于所有非静态成员函数的概念.
至于为什么它没有工作 – 你不能在const实例上调用非const成员.例如.:
class C { public: void f1() {} void f2() const {} }; void test() { const C c; c.f1(); // not allowed c.f2(); // allowed }
本文共计335个文字,预计阅读时间需要2分钟。
在C++中,const关键字通常用于指定变量或函数参数为常量,即它们的值在函数执行期间不可更改。在函数签名中使用const通常意味着该函数不会修改传入的参数。以下是对所给内容的简化修改:
在花括号前的const表示函数是const成员函数,意味着函数不会修改对象的状态。例如:virtual void print(int chw, int dus) const;这表明print函数不改变对象数据成员的值,因此代码中似乎遗漏了const。
不知为何,即使代码中没有显式使用const,函数签名中仍然包含const关键字。这很奇怪,因为如果没有const,函数将有可能修改对象的数据。
非常感谢您的提问!函数签名中的const表示函数是常量成员函数。
只是想知道为什么虚函数的语法在花括号之前使用const,如下所示:virtual void print(int chw, int dus) const;
顺便说一句,代码似乎没有const,这很有趣..不知道为什么?
非常感谢!
函数签名中的const表示const成员函数 – Anthony Williams对其影响给出了 great answer.请注意,在这方面虚拟成员函数函数没有什么特别之处,constness是一个适用于所有非静态成员函数的概念.
至于为什么它没有工作 – 你不能在const实例上调用非const成员.例如.:
class C { public: void f1() {} void f2() const {} }; void test() { const C c; c.f1(); // not allowed c.f2(); // allowed }

