示例#1
0
int main()
{
	D4 od4;

	chkVal(__LINE__, "od4.vf1()", od4.vf1(), 101);
	chkVal(__LINE__, "od4.vf2()", od4.vf2(), 201);
	chkVal(__LINE__, "od4.vf3()", od4.vf3(), 301);
	chkVal(__LINE__, "od4.vf4()", od4.vf4(), 401);

	//	Check access through pointer to right "diamond" lattice
	//
	R1* rptr = new D4;
	chkVal(__LINE__, "rptr->vf1()", rptr->vf1(), 101);	// should call R1::vf1
	chkVal(__LINE__, "rptr->vf2()", rptr->vf2(), 201);	// should call L2::vf2
	chkVal(__LINE__, "rptr->vf3()", rptr->vf3(), 301);  // should call L3::vf3
	chkVal(__LINE__, "rptr->vf4()", rptr->vf4(), 401);	// should call R4::vf4
	
	//	Check access through pointer to left "diamond" lattice
	//
	L3* lptr = new D1;
	chkVal(__LINE__, "lptr->vf1()", lptr->vf1(), 101);	// should call R1::vf1
	chkVal(__LINE__, "lptr->vf2()", lptr->vf2(), 201);	// should call L2::vf2
	chkVal(__LINE__, "lptr->vf3()", lptr->vf3(), 301);  // should call L3::vf3
	chkVal(__LINE__, "lptr->vf4()", lptr->vf4(), 401);	// should call R4::vf4
	
	_PASS;
}