代码:
#pragma once
#include <iostream>
using namespace std;
//试卷
class TestPaper
{
protected:
virtual int answer1() { return -1; }
virtual int answer2() { return -1; }
virtual int answer3() { return -1; }
public:
void test1() { cout<<"1 + 1 = "<<answer1()<<endl; }
void test2() { cout<<"1 + 2 = "<<answer2()<<endl; }
void test3() { cout<<"1 + 3 = "<<answer3()<<endl; }
};
#pragma once
#include "TestPaper.h"
class TestPaperA : public TestPaper
{
public:
protected:
int answer1() { return 2; }
int answer2() { return 3; }
int answer3() { return 4; }
private:
};
#pragma once
#include "TestPaper.h"
class TestPaperB : public TestPaper
{
public:
protected:
int answer1() { return -2; }
int answer2() { return -3; }
int answer3() { return -4; }
private:
};
#pragma once
#include "TestPaper.h"
#include "TestPaperA.h"
#include "TestPaperB.h"
void main()
{
cout << "studentA" << endl;
TestPaper* studentA = new TestPaperA();
studentA->test1();
studentA->test2();
studentA->test3();
cout << "studentB" << endl;
TestPaper* studentB = new TestPaperB();
studentB->test1();
studentB->test2();
studentB->test3();
system("pause");
}
结果: