ashell_t 2014-05-15 22:45:41

[C++] さよならリソースこんにちはクソース このエントリーをはてなブックマークに追加

投稿者からのアピールポイント

リソースを抱えるときはデストラクタとコピーコンストラクタと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;
}

使い方ヒント: 「これは臭う」という行を見付けたら、各行のsmellをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

コメント(1)

#1 koichi_210 2015-01-20 19:30:27  

operator=で、deleteとnewは必要無いような。。

コメント投稿には、twitter認証が必要です。

Twitter認証

このウンコードに臭った人は、こちらのウンコードにも臭ってます

[その他] HOW TO ABC..

このエントリーをはてなブックマークに追加

実際にあった某システムの超重要なマスター...

create table item_master (
 A varchar(2...

鑑賞する »

[C] 何がしたかったのか

このエントリーをはてなブックマークに追加

10年位前、炎上しているプロジェクトの支...

void funcX() {
    int a;
    a = func...

鑑賞する »

[Java] 連番

このエントリーをはてなブックマークに追加

もはや人間が読むものではない。

...

package com.renban.erq053.czp008;

/**...

鑑賞する »