C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 84 を表示中)
■49808 / )  Re[3]: C++でインスタンス生成する方法について
□投稿者/ 774RR (505回)-(2010/05/18(Tue) 12:05:57)
他の言語での挙動を勝手に C++ にあてはめているような気がする。
「一時オブジェクト」というものを理解する必要がありそうだね。
# なんというか C++ の罠にはまっている典型的パターンと思われる
# explicit とかその辺の理解も必要になってきているわけだ

掲示板のスペースで説明するにはいささか分量が多すぎると思われるが
void hogehoge() {
 int i=1;
 i=2;
} // としてメモリリークなんかしないのと同様
void piyopiyo() {
 myclass x=1.0f;
 x=2.0f;
} // としたってメモリリークしないよ (myclass 自体にリークバグがあれば別だが)

C++ 言語仕様書に「スタック上にメモリを確保する」などという文言は一切現れない。
そういう詳細は各処理系の実装に任されているのでマニュアルを読む必要がある。

> スタックにオブジェクトの実体を置きたいときはどのようにするのでしょうか?
組み込み系に限らず、ふつーは { ... } の中に書かれた変数(インスタンス)のための
記憶域(まあ端的にはメモリ)は、スタック上にとられるもんだ。
const の有無とかは関係ない
返信 編集キー/


管理者用

- Child Tree -