#include <iostream>
using namespace std;
class Student{
protected:
int roll_no;
public:
void getNumber(){
cout << "Enter number\n";
cin >> roll_no;
}
int putNumber(){
return roll_no;
}
};
class Test:public virtual Student{
protected:
int m1,m2;
public:
Test(){
m1=m2=0;
}
Test(int a, int b){
m1=a;
m2=b;
}
void display(){
cout << "Mark 1: " << m1;
cout << "Mark 2: " << m2;
}
};
class Sports:public virtual Student{
protected:
int score;
public:
Sports(){
score=0;
}
Sports(int a){
score=a;
}
void display(){
cout << "Score: " << score;
}
};
class Total:public virtual Test,public virtual Sports{
private:
int total;
public:
Total(){
total=0;
}
int display(){
total=m1+m2+score;
return total;
}
};
int main(){
Test ob1(10,20);
Sports ob2(50);
Total ob3;
cout << ob3.display() << endl;
}
試圖實現一個虛擬的基類學生。問題是要找到Test類中分數的總和以及Sports類中的分數。但是,我得到0作爲輸出,而不是80. 任何人都可以請解釋這一點?奇怪的輸出虛擬基類
你使用什麼編程語言?你可能想標記。 – Trevor
「虛擬基類」並不意味着你實例化的每個對象都使用相同的基類對象。 –