新聞中心
C語言問題虛函數(shù)的問題
虛函數(shù)的作用是可以通過基類的指針或者引用調(diào)到派生類的這個(gè)函數(shù)。
成都創(chuàng)新互聯(lián)公司專注于余干網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供余干營銷型網(wǎng)站建設(shè),余干網(wǎng)站制作、余干網(wǎng)頁設(shè)計(jì)、余干網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造余干網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供余干網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
你上面的代碼是演示虛函數(shù)的作用,不用去簡便他。
你可以把這個(gè)程序中的virtual全部刪除掉,然后再運(yùn)行程序,觀察一下兩次結(jié)果的不一樣,估計(jì)你就能理解虛函數(shù)的作用了。
編寫一個(gè)C語言創(chuàng)建向量的void函數(shù)
#include?stdio.h
#include?stdlib.h
typedef?struct?{
int?n;
double?*value;
}Vector;
void?createvector(Vector?*x,?int?n){
x-n=n;
double?*value=malloc(sizeof(double)*n);
x-value=value;
}
void?deletevector(Vector?*x){
free(x-value);
}
int?main()
{???
int?n,i;
Vector?*temp=malloc(sizeof(Vector));
printf("n=");
scanf("%d",n);
createvector(temp,n);
for(i=0;in;i++){
scanf("%lf",temp-value+sizeof(double)*i);
}
printf("%d\n",n);
for(i=0;in;i++){
printf("%lf\n",*(temp-value+sizeof(double)*i));
}
deletevector(temp);
free(temp);
return?0;
}
C++ 編寫超市購物程序(虛函數(shù))
class 冰箱: public goods
{ public:
void price(){ 計(jì)算冰箱價(jià)格;}
};
class 彩電: public goods
{ public:
void price(){ 計(jì)算彩電價(jià)格;}
};
class 空調(diào): public goods
{ public:
void price(){ 計(jì)算空調(diào)價(jià)格;}
};
class goods
{ public:
virtual void price() {}//虛函數(shù)
};
void fun(goods *p)
{ p-price();
}
void main()
{ goods *p;
冰箱 A;
p=A;
fun(p);
//其他類同 注意調(diào)用格式。必須是 基類指針。
}
C語言怎么動(dòng)態(tài)創(chuàng)建函數(shù)?
C語言可以通過宏,在你需要的位置宏展開出一個(gè)新的函數(shù)。
例如:
#define XXX(funcname) \
int funcname (int arg1, int arg2) \
{ return arg1 + arg2; }
但這也是編譯期就決定好了的,也不能實(shí)現(xiàn)運(yùn)行期動(dòng)態(tài)創(chuàng)建。
文章題目:c語言動(dòng)態(tài)創(chuàng)建虛函數(shù) C++虛函數(shù)表精講教程,直戳多態(tài)的實(shí)現(xiàn)機(jī)制
URL鏈接:http://www.dlmjj.cn/article/dodopse.html