関数内でreturnステートメントを使用してユーザー定義型(特にクラス)を返すとどうなりますか。「DMatrix」というc++クラスがあるとします。
DMatrix someFunc()
{
DMatrix mymat;
/* Some operations on this matrix */
return mymat;
};
main()内のどこかで、やりたいです:
DMatrix d;
d = someFunc();
スタック操作に関して正確に何を呼び出しますか?
クラスDMatrixを返すには、コピーコンストラクター(このクラスのインスタンスを参照経由で渡すことができるようにするため)と=演算子を定義するだけで十分だと思います。私は正しいですか?
背後にある動機:この質問の背後にある動機は2つあります。1)マトリックスタイプを定義したライブラリを使用します。たとえば、DMatrixを使用します。DMatrixタイプを返す関数を書くことはできますか?
2)2番目の理由は、もちろん、カスタムデータ型の戻りとintやdoubleなどの基本データ型の戻りのスタックレベルでの違いをより深く理解することです。したがって、C++でより優れたクラスをコーディングします。これは別の質問にする必要があるかもしれません。