亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

你好,咨詢一個問題,是關于C++ class的

你好,咨詢一個問題,是關于C++ class的

www說 2021-07-15 19:11:54
class A{public:void virtual read(){cout<<"base class A";}};class B:public A{public:void read(){cout<<"derived class B";}};int main(){B obj();clrscr();obj.read();getch();}/*int main(){B obj;obj.read();return 0;}*/int main(){B obj;obj.A::read();cout<<"\n";obj.B::read();return 0;}/*int main(){A obj1;B obj2;A*ptr;ptr=&obj1;ptr->read();cout<<"\n";ptr=&obj2;ptr->read();return 0;}*/麻煩請詳細的解釋每句。
查看完整描述

2 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

class A
//A類聲名
{
public:
//公共成員
void virtual read()
//read的虛函數
{
cout<<"base class A";
//輸出“base class A”
}
};
class B:public A
//B類聲名,繼承A
{
public:
void read()
//重寫read(必須重寫,因為前面是虛函數)
{
cout<<"derived class B";
//輸出“derived class B”
}
};
int main()
//主程序進入
{
B obj();
//建立B類的obj對象
clrscr();
//調用clrscr(你給的代碼里沒有這個的聲名)
obj.read();
//調用obj對象的read對象
getch();
}
//以下部分全是你本來有的注釋
/*int main()
{
B obj;
obj.read();
return 0;
}*/
int main()
{
B obj;
obj.A::read();
cout<<"\n";
obj.B::read();
return 0;
}
/*int main()
{
A obj1;
B obj2;
A*ptr;
ptr=&obj1;
ptr->read();
cout<<"\n";
ptr=&obj2;
ptr->read();
return 0;
}*/



查看完整回答
反對 回復 2021-07-19
?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

不知道這么多main函數干嘛的,就是多態性測試吧,讓基類對象指針指向派生類的read函數
class A
{
public:
void virtual read()//虛函數
{
cout<<"base class A";
}
};
class B:public A
{
public:
void read()//繼承 實現虛函數
{
cout<<"derived class B";
}
};
void main()
{
A *a;//基類指針
B obj;//派生類對象
a=&obj;//動態編聯 調用派生類的read函數
a->read();//輸出derived class B
getch();
}



查看完整回答
反對 回復 2021-07-19
  • 2 回答
  • 0 關注
  • 424 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號