所有権エラーが嫌ならthisポインタを保存すればいいだけのこと
ポインタとしての構文動作がしたいなら->()なり、*()なり
オペレータオーバーロードすりゃあいいだろ
#include <iostream>
using namespace std;
#define TEST
template<typename T>class A {
public:
T* m_p;
A* m_owner;
int m_size;
A() {
m_owner = this;
m_p = nullptr;
m_size = 0;
#ifdef TEST
cout << "コンストラクタ A"<<endl;
#endif
}
A(int n) :A() { m_p = new T[n]; m_size = n; }
~A() {
if (m_owner == this && m_p != nullptr) {
delete[] m_p; m_p = nullptr; m_size = 0;
#ifdef TEST
cout << "デストラクタ A" << endl;
#endif
}
}
つづき
mallocの後にfree不要と言うバカいるの?Part2
■ このスレッドは過去ログ倉庫に格納されています
646NAS6 ◆n3AmnVhjwc
2015/08/26(水) 02:17:33.32ID:soKtzAZv■ このスレッドは過去ログ倉庫に格納されています
