リソースを抱えるときはデストラクタとコピーコンストラクタとoperator=を書くのかー。へー。
試しに自分自身を代入して、……-842150451?
#include <iostream> struct Unko { int *resource; Unko() : resource(new int) {} ~Unko() { delete resource; } Unko(const Unko& unko) : resource(new int) { *resource = *unko.resource; } Unko& operator=(const Unko& rUnko) { delete resource; resource = new int; *resource = *rUnko.resource; return *this; } }; int main() { Unko unko; *unko.resource = 42; unko = unko; std::cout << *unko.resource << std::endl; return 0; }
使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)
コメント投稿には、twitter認証が必要です。
Twitter認証
operator=で、deleteとnewは必要無いような。。