[ create a new paste ] login | about

Link: http://codepad.org/qkLmbmmS    [ raw code | output | fork ]

C++, pasted on Oct 30:
class CBase {
	public:
	//virtual int hoge() { return 0; }  // ← こっちでも当然動くが、
	virtual int hoge()=0;               // ← CBaseの hoge が使われる事無いなら、純粋仮想関数にして明示しとけ
	                                    //   Javaやなんかで言う、いわゆる interface
};

class CSub_A : public CBase {
	public:
	int hoge() { return 1; }
};

class CSub_B : public CBase {
	public:
	int hoge() { return 2; }
};

int main()
{
	CBase* list[2];
	list[0] = new CSub_A();
	list[1] = new CSub_B();

	printf(
		"何のための virtual だよって言う [0]=%d, [1]=%d\n"
		, list[0]->hoge()  // 1を返したい
		, list[1]->hoge()  // 2を返したい
	);

	delete list[0]; delete list[1];
	return 0;
}


Output:
1
何のための virtual だよって言う [0]=1, [1]=2


Create a new paste based on this one


Comments: