c++の関数の引数について質問があります。
例えばjavaなら
というふうに引数のところで直接宣言しても問題は起こりませんが
c++でこれをするとメモリリークになってしまいます。
テンポラリ変数を作る以外に何か簡単にできる方法はないでしょうか?
c++の引数について
Re: c++の引数について
このコードでメモリリークになるのですか?
#include <cstdio>
class Point {
int x,y;
public:
Point():x(0),y(0){};
Point(int sx,int sy):x(sx),y(sy){};
void print() const { printf("(%d,%d)\n",x,y); }
};
// コピーが発生する
void hoge(Point p) {
p.print();
}
// コピーは発生しない
void hoge2(const Point& p) {
p.print();
}
int main() {
hoge(Point(3,5));
hoge2(Point(5,7));
return 0;
}複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
-
haruharu
Re: c++の引数について
C++ではnewを使わないでもインスタンスを作れるのですね。
今まではわざわざテンポラリ変数を作ってから渡していました(笑)
わかりやすい解説をありがとうございました。
今まではわざわざテンポラリ変数を作ってから渡していました(笑)
わかりやすい解説をありがとうございました。