C++类成员函数返回一个该类新的对象,该类不是基本类型,所以在函数中构建一个对象返回就是返回临时变量!
答案:4 悬赏:40 手机版
解决时间 2021-04-05 20:28
- 提问者网友:像風在裏
- 2021-04-04 19:50
肯定不能使用,怎么解决?
例如下面程序,编译就是痛不过
#include
using namespace std;
class Matrix
{
public:
Matrix(){};
Matrix(char* val, int n){};
Matrix(Matrix& matrix){};
~Matrix(){};
Matrix getChild(int l, int c)
{
Matrix mat;
return mat;
}
Matrix operator=(Matrix matrix){return *this;};
public:
char* value;
};
int main()
{
Matrix matrix;
Matrix mat;
mat = matrix.getChild(1,2);
}
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-04-04 20:22
肯定可以使用!
什么情况下不能使用?除非你返回的是临时变量的地址,这样函数结束临时变量被销毁,拿着它的地址用肯定会出问题。
直接返回临时变量,相当于按值传递,返回值只起到把值复制到外部变量的作用,复制完成后,临时变量虽然被销毁了,但你用的外部变量已经有了临时变量的值,而且和临时变量无关。
这和是不是基本类型没有关系
全部回答
- 1楼网友:封刀令
- 2021-04-04 22:48
假如有个全局变量int a,存放于myfile.h文件中,则在类中用,需要添加
#include "myfile.h"
extern int a;
即可
- 2楼网友:人類模型
- 2021-04-04 22:35
。。。。怎么解决。。。知道要返回,那你就不要返回临时的啊。。。在函数外面定义一个不好吗?
- 3楼网友:老鼠爱大米
- 2021-04-04 21:18
class AAA
{
public AAA getNewAAA()
{
.....
return AAA;
}
}
是这种效果?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯