c++pp中的一段话,完全理解不了,这书里很多话都理解不了,没头没脑的,英文版也看不出来什么意思
对于修改调用函数中数据的函数。
如果数据对象是内置数据类型,则使用指针。如果看到诸如fixit(&x)这样的代码(其中x是int),则很明显,改函数修改x。
如果数据对象是数组,则只能使用指针。
如果数据对象是结构,则使用引用或指针。
如果数据对象是类对象,则使用引用
当然,这只是一些指导原则,很可能有充分的理由作出其他选择。例如,对于基本类型,cin使用引用,因此可以使用cin>>n, 而不是cin >> &n
也就是说
int n;//(1)
cin >> n; //(2)
这个代码中,>>操作符的操作对象n是一个引用,所以,在(2)给n赋值以后,(1)中的n的值也随之改变。(这里涉及到>>运算符的重载,输入输出流的>>运算符 函数是引用,大体上类似于 fstream operater >> (int &n) { } )
在C++里,如果需要通过函数来改变变量的值,可以使用引用,也可以使用指针。这就是你的正文里那些话的意思。以swap函数为例,
使用引用来实现交换:
oid swap(int &a,int &b)
{
int t = a;
a=b;
b = t;
}
使用指针来实现交换:
void swap(int *a,int* b)
{
int t;
t = *a;
*a = *b;
*b = t;
}
cin是一个对象,重载了operator>>操作符。
这段话主要就是介绍了从函数里面修改外部对象的方法。