面向对象程序设计-C++_课时21引用

Posted 邓戈麟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象程序设计-C++_课时21引用相关的知识,希望对你有一定的参考价值。

 

数据类型 & 别名=对象名;

 

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int * f(int * x)
 5 {
 6     (*x)++;
 7     return x;
 8 }
 9 
10 int & g(int & x)
11 {
12     x++;
13     return x;
14 }
15 
16 int x;
17 
18 int & h()
19 {
20     int q;//!return q
21     return x;
22 }
23 
24 void main()
25 {
26     int a = 0;
27     std::cout << a << std::endl;//0
28 
29     f(&a);//丑陋,但是清晰
30     std::cout << a << std::endl;//1
31 
32     g(a);//清晰,但是隐蔽,可以修改a
33     std::cout << a << std::endl;//2
34 
35     h() = 16;//返回值是引用,因此可以做左值
36     std::cout << a << std::endl;//2
37 
38     std::cout << x << std::endl;//16
39 
40     system("pause");
41 }

 

不能声明引用的引用

可以声明对指针的引用,但不能声明指针对变量的引用

int & * p;//illegal

int * & p1=p2;//ok

void f(int * & p);

p是引用,引用了一个指向int类型的指针

可以声明指向引用的指针

没有引用的数组(数组元素不能是引用)

但是可以引用一个数组

 

以上是关于面向对象程序设计-C++_课时21引用的主要内容,如果未能解决你的问题,请参考以下文章

面向对象程序设计-C++_课时22向上造型

面向对象程序设计-C++_课时28静态对象_课时29静态成员

面向对象程序设计-C++_课时19const_课时20不可修改的

面向对象程序设计-C++_14对象组合_课时15继承

面向对象程序设计-C++_课时13初始化列表

面向对象程序设计-C++_课时30运算符重载——基本规则_课时31运算符重载——原型_课时32运算符重载——赋值_课时33运算符重载——类型转换