ページ 1 / 1
std::stackの末尾要素のdeleteについて
Posted: 2018年4月22日(日) 17:21
by Y氏
コード:
#include <stack>
#include <iostream>
using namespace std;
class Test {
public:
Test() {
cout << "オブジェクト生成" << endl;
};
~Test() {
cout << "オブジェクト削除" << endl;
};
};
void main() {
int stop;
cout << "Stack" << endl;
stack<Test*> sTest;
sTest.push(new Test);
delete sTest.top;
sTest.pop();
cin >> stop;
}
ゲーム制作中、シーン管理をstackを使って実装したところpopしたシーンのメモリが解放されないことに気付き、開放する手段がないか試すために上記のコードを組みました。結果、delete出来ないことが分かったのですがなぜなのですか?
Re: std::stackの末尾要素のdeleteについて
Posted: 2018年4月22日(日) 22:31
by Bull
18 行目ですが、
sTest.top は関数なので、delete はできないと思いますが、コンパイルエラーになりませんか。
とすればいいのではないでしょうか。
Re: std::stackの末尾要素のdeleteについて
Posted: 2018年4月23日(月) 21:35
by Y氏
ああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!僕がバカでしたあああああああああああああああああああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!出来ました!!ありがとうございます!!ありがとうございます!!!!!