考试网 >> IT认证 >> 等级 >> 等级动态 >> C语言中的类模拟和多态,继承

C语言中的类模拟和多态,继承

发布时间:2006-07-25 12:02     点击:
分页:[1] 2 3  下一页

  在面向对象的语言里面,出现了类的概念。这是编程思想的一种进化。所谓类:是对特定数据的特定操作的集合体。所以说类包含了两个范畴:数据和操作。而C语言中的struct仅仅是数据的集合。

1.实例:下面先从一个小例子看起

#ifndef C_Class

#define C_Class struct

#endif

C_Class A {

C_Class A *A_this;

void (*Foo)(C_Class A *A_this);

int a;

int b;

};

C_Class B{ //B继承了A

C_Class B *B_this; //顺序很重要

void (*Foo)(C_Class B *Bthis); //虚函数

int a;

int b;

int c;

};

void B_F2(C_Class B *Bthis)

{

printf("It is B_Fun\n");

}

void A_Foo(C_Class A *Athis)

{

printf("It is A.a=%d\n",Athis->a);//或者这里

// exit(1);

// printf("纯虚 不允许执行\n");//或者这里

}

void B_Foo(C_Class B *Bthis)

{

printf("It is B.c=%d\n",Bthis->c);

}

void A_Creat(struct A* p)

{

p->Foo=A_Foo;

p->a=1;

p->b=2; 

p->A_this=p;

}

void B_Creat(struct B* p)

{

p->Foo=B_Foo;

p->a=11;

p->b=12; 

p->c=13;

p->B_this=p;

}

int main(int argc, char* argv[])

{

C_Class A *ma,a;

C_Class B *mb,b;

A_Creat(&a);//实例化

B_Creat(&b);

mb=&b;

ma=&a;
分页:[1] 2 3  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有