1. 首页
  2. 编程语言
  3. C++ 
  4. Learning ROS for Robotics Programming (第二版)

Learning ROS for Robotics Programming (第二版)

上传者: 2024-07-23 22:35:45上传 PDF文件 14.32MB 热度 11次

10.1 C++中的指针

C和C++指针的最重要区别在于C++是一种类型要求更强的语言。尤其是对于void*,这点更为明显。C允许通过void*来实现类型指针的转换,而C++则不允许。例如:


bird* b;

rock* r;

void* v;

v = r;

b = v; // C++编译器会报错

在C++中,如果你真的想这么做,必须显式地使用强制转换,这样既能通知编译器,也能让读者清楚你的意图(详见C++改进的映射语法)。这使得代码更加安全和可读。

10.2 C++中的引用

引用(&)就像一个自动能被编译器逆向引用的常量型指针,通常用于函数的参数和返回值,但也可以独立使用。例如:


int x;

int& r = x;

创建引用时,引用必须被初始化指向一个存在的对象。但你也可以这样写:


int& q = 12;

在这里,编译器分派了一个存储单元,其值被初始化为12,这样引用就和这个存储单元联系上了。要点是任何引用必须和存储单元联系,当访问引用时,就是在访问那个存储单元。因此,如果这样写:


int x = 0;

int& a = x;

a++;

增加a事实上是增加x。考虑引用的最简单方法是把它当作一个奇特的指针,一个不必怀疑是否被初始化的指针(因为编译器强迫它初始化),也不必知道如何逆向引用。

C++中的引用类型在参数传递中尤为重要,这点在C++编程中将引用类型作为函数参数的方法指南中有详细介绍。

如果你对指针和引用在C++中的应用感兴趣,可以参考这篇关于C++指针与引用的文章,了解更多内容。

下载地址
用户评论