21xrx.com
2024-12-23 01:54:31 Monday
登录
文章检索 我的文章 写文章
C++函数后面的const关键字
2023-06-28 08:11:02 深夜i     --     --
C++ 函数 const 不可变性 代码优化

在C++编程语言中,const关键字是一个常用的表示“常量”的关键字。不过,不仅仅可以用于指定一个变量为常量,const关键字还可以用于定义函数参数和返回值的属性。

当我们在定义一个函数时,在参数列表后面加上const关键字,表示该参数是只读的,不能被修改。这样可以起到保护变量的效果,避免在函数内部意外地修改了这个参数。例如:


void print(const string& str)

  cout << str << endl;

这个函数的参数是一个字符串引用,但是加上了const关键字,表示在函数内部不能修改这个字符串,只能读取它。这保证了调用者在传递参数时,不会被函数内部修改,从而避免了意外的错误。

同样的,我们还可以在函数返回类型前面加上const关键字,来表示这个函数不会修改任何类的成员变量。这种类型的函数被称为const成员函数。例如:


class Person {

public:

  void setName(const string& name) m_name = name;

  void setAge(int age) m_age = age;

  string getName() const return m_name;

  int getAge() const return m_age;

private:

  string m_name;

  int m_age;

};

int main()

{

  Person p;

  p.setName("Tom");

  p.setAge(18);

  const Person& cp = p;

  cout << cp.getName() << ":" << cp.getAge() << endl;

  return 0;

}

在这个例子中,我们定义了一个Person类,它有两个成员变量m_name和m_age,以及四个成员函数setName、setAge、getName和getAge。其中,getName和getAge都在返回类型前面加上了const关键字,表示这两个函数不会修改任何类的成员变量,只是返回结果而已。

在main函数中,我们首先创建一个Person对象p,调用setName和setAge函数设置它的名字和年龄,然后再创建一个常量引用cp,把它指向p。最后,我们输出cp的名字和年龄,发现它的确是只读的,不会让我们修改它的属性。

总之,在C++中使用const关键字可以帮助我们编写更加健壮和可靠的程序,避免因为错误的修改而导致程序出错。特别是在定义函数参数和返回值时,加上const关键字更能够提高程序的稳定性和安全性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复