首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于函数返回值类型有关问题

2012-05-01 
关于函数返回值类型问题我编写了一个矩阵类类中的数据成员有m_row(行数),m_column(列数),m_p(指针),构造函

关于函数返回值类型问题
我编写了一个矩阵类
类中的数据成员有m_row(行数),m_column(列数),m_p(指针),构造函数对三个数据成员进行初始化,其中m_p指向使用new申请的m_row*m_column的存储空间,析构函数是释放m_p。
我想问的是:在一个函数中创建一个矩阵对象,此时调用构造函数,当函数结束后调用析构函数销毁该对象。如果函数的返回值类型为矩阵类,因为m_p在函数结束后释放,是不是就不能返回该局部矩阵对象了啊?????

[解决办法]
int get(void)
{
int a;
return a;
}
lz仔细想想这个代码能够运行.
在函数结束后a照样生命期结束了.
[解决办法]
我明白你的意思了。如果你的函数是Matrix Func();
如果你这样调用函数了。Matrix a=Func();那么显然会调用Matrix的拷贝构造函数。当然你也可以在该函数内部定义Matrix的对象,并且使该对象存放在堆空间上。
[解决办法]

C/C++ code
m funk(){    m *temp = new m;    return *temp;}
[解决办法]
1 函数应当返回这个矩阵类的实例
2 正确编写这个矩阵类的拷贝构造/赋值以及移动构造/赋值

热点排行