代码:
#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"); } 结果: