MST

星途 面试题库

面试题:C++ 中按常量引用传递在只读数据应用的基础问题

请简述在 C++ 中,按常量引用传递参数用于只读数据场景的优点,并给出一个简单示例代码说明这种传递方式如何避免不必要的数据拷贝。
46.3万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

优点

  1. 避免数据拷贝:对于大型对象,按值传递会进行对象的完整拷贝,开销较大。而按常量引用传递,实际上传递的是对象的地址,不会产生额外的数据拷贝,大大提高了效率。
  2. 保护数据:声明为常量引用,确保在函数内部不会修改传入的参数,保证了只读数据的安全性。

示例代码

#include <iostream>
#include <string>

// 函数接受一个常量引用参数
void printString(const std::string& str) {
    std::cout << str << std::endl;
}

int main() {
    std::string longString = "This is a very long string that we don't want to copy unnecessarily.";
    printString(longString);
    return 0;
}

在上述代码中,printString 函数接受一个 const std::string& 类型的参数。当 main 函数调用 printString(longString) 时,不会对 longString 进行拷贝,而是通过引用直接操作原对象,同时由于 const 修饰,函数内部无法修改 str