当我们在函数中使用 return 语句返回用户定义的类型(特别是类)时会发生什么。假设我们有一个名为“DMatrix”的 c++ 类
DMatrix someFunc()
{
DMatrix mymat;
/* Some operations on this matrix */
return mymat;
};
在 main() 的某个地方,我想做:
DMatrix d;
d = someFunc();
在堆栈操作方面究竟调用了什么?
我想为了类 DMatrix 是可返回的,有一个复制构造函数(这样这个类的实例可以通过引用传递)和定义的 = 运算符就足够了。我对吗?
背后的动机:这个问题背后的动机是双重的。1)我使用一个定义了矩阵类型的库,比如说 DMatrix。我可以编写返回 DMatrix 类型的函数吗?
2)第二个原因当然是要更深入地了解返回自定义数据类型和返回 int 或 double 等基本数据类型在堆栈级别的区别。因此,在 C++ 中编写更好的类。也许这必须成为一个单独的问题。