些細な質問であることはわかっていますが、その理由を知る必要があります。
によってコンパイルされた次のコードは失敗しました
a.out(93143) malloc: *** error for object 0x7fff5af8293f: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
コード:
#include <iostream>
using namespace std;
class A
{
};
class B
{
private:
A a;
public:
B(){a=*new A();}
~B(){delete &a;}
};
int main()
{
B b;
}
即時のコメントによると、「new」で動的に割り当てられたオブジェクトは、「a」に割り当てた後、すぐに所有者を失ったことに気付きました。「A」へのポインターではなくオブジェクトが必要な場合、最善の解決策は何ですか?