C++函数返回值类型
2008-09-18 12:11
239 查看
C++语言的函数返回值类型可以分为内部类型和自定义类型两大类。
在函数返回内部类型中不能返回数组类型但可以返回指向数组的指针,同样也可以返回指向函数的函数指针。如果希望返回值可以作为左值(即可以放在赋值操作符左边的)那就必须返回引用类型。
而在函数返回自定义类型(即返回类类型)中根据是否可作为左值,返回值是否可调用成员函数的不同可分为以下四种情况。
T:返回类类型
T f();
const T f();
T& f();
const T& f();
T f(); 返回一般的类类型,返回的类类型不能作为左值,但返回的类类型可以直接调用成员函数来修改,如function().set_Value(); 返回类类型调用复制构造函数。
const T f(); 此种类型与上述第一种相同,唯一不同的是返回的类类型不能调用成员函数来修改,因为有const限定符。
T& f(); 返回类的引用可以作为左值,并且返回的类类型引用可以直接调用成员函数来修改,返回的类类型不会调用复制构造函数。
const T& f(); 不能作为左值,不能调用成员函数修改,不会调用复制构造函数。
在函数返回内部类型中不能返回数组类型但可以返回指向数组的指针,同样也可以返回指向函数的函数指针。如果希望返回值可以作为左值(即可以放在赋值操作符左边的)那就必须返回引用类型。
而在函数返回自定义类型(即返回类类型)中根据是否可作为左值,返回值是否可调用成员函数的不同可分为以下四种情况。
T:返回类类型
T f();
const T f();
T& f();
const T& f();
T f(); 返回一般的类类型,返回的类类型不能作为左值,但返回的类类型可以直接调用成员函数来修改,如function().set_Value(); 返回类类型调用复制构造函数。
const T f(); 此种类型与上述第一种相同,唯一不同的是返回的类类型不能调用成员函数来修改,因为有const限定符。
T& f(); 返回类的引用可以作为左值,并且返回的类类型引用可以直接调用成员函数来修改,返回的类类型不会调用复制构造函数。
const T& f(); 不能作为左值,不能调用成员函数修改,不会调用复制构造函数。
相关文章推荐
- c++ 函数符号重载 返回类型是否为引用问题 剖析
- [跨平台C++] 返回const char* 类型的函数样板
- C++ 二维数组作为函数返回值类型传递方式举例
- C++基础---函数的返回类型
- 【C++】重载运算符号时的函数返回值类型问题
- C++中函数定义返回类型和内部实现返回类型不同的原因
- C++基础::语法特性::函数重写(override)与协变返回类型(covariant return type)
- 函数的返回类型可以为值、指针、引用,这三种返回类型有什么不同,各有什么好处?(c++)
- C++函数返回类型学习笔记
- C++函数返回类型详解
- C++函数的返回值——返回引用类型&非引用类型
- C++基础---有返回值类型函数(指针函数)
- C/C++—— 写一个函数,它的参数为指向函数的指针,返回类型也为指向函数的指针
- C++基础---有返回值类型函数(返回非引用类型)
- C++中函数定义返回类型和内部实现返回类型不同的原因
- C++函数返回类型和return语句
- c/c++中const成员函数的返回值类型
- c/c++: c++函数返回类型什么情况带const
- c++中函数中变量内存分配以及返回指针、引用类型的思考
- C++引用与函数返回类型