include guard 본문

Programming/C++

include guard

halatha 2011. 5. 24. 23:30
출처: http://yesarang.tistory.com/64

//	hdr1.h
class DummyBase	{
private:
	int	_i;

public:
	DummyBase(int i): _i(i)	{}
	int Get()		{	return	_i;	}
	void Set(int i)	{	_i	=	i;	}
};

//	hdr2.h
#include "hdr1.h"

class Dummy: DummyBase	{
public:
	Dummy(int i): DummyBase(i)	{}
	int operator() () {	return	Get();	}
	int operator() (int multi)	{	return	Get() * multi;	}
};

//	tips1.cpp
#include "hdr1.h"
#include "hdr2.h"

int main()
{
	DummyBase	db(200);
	Dummy	d(100);
}
$ g++ tips1.cpp
In file included from hdr2.h:1,
                 from tips1.cpp:2:
hdr1.h:1: error: redefinition of ‘class DummyBase’
hdr1.h:1: error: previous definition of ‘class DummyBase’

Comments