C++

C++: 函数返回非引用类型与返回引用类型

内容概要: c++ 返回引用类型 c++ 函数返回值类型

c++ 返回引用类型

前面讨论了C++ 函数的参数问题, 包括引用行参与非引用行参引用行参与指针行参, 今天来讨论下c++ 函数返回值的类型: c++ 返回引用类型和非引用类型. 系统全面的学习C++, 可以参考我的C++ 专栏 .

函数的返回过程和参数传递过程是相对称的两个的过程。

参数传递从调用函数向被调用函数传递, 返回值从被调用函数向调用函数返回。

由于传递方式的区别(拷贝副本与传递本身), 函数形参可以分为引用形参和非引用形参; 类似的,函数返回值也可以分为非引用类型返回值引用类型返回值, 二者的差异和引用形参和非引用形参类型。

当函数返回非引用类型是,返回值的拷贝副本用来初始化在函数调用处创建的临时对象;

当函数返回引用类型时,返回的是对象本身;

eg.

int & fuck(int & a)

{

return a;

}

c++ 返回引用类型 可以避免拷贝副本的开销,同时返回引用的函数返回的是个左值,可以用在任何可以使用左值的地方:

eg :

int b =0;

fuck(b) = 1;

如果不希望引用返回值被修改,可以声明为const;

const int & fuck(int &a);

但有其限制:  不能返回局部对象的引用,因为函数执行完毕时,局部对象会自动释放, 此时局部对象的引用会指向不确定的内存;

类似的,也不能返回局部对象的指针;

C++

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 [1]
C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top