可以通过以下方法实现面向对象:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序制作、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了舟山免费建站欢迎大家使用!
1、封装
封装就是把数据和方法打包到一个类里面。其实C语言编程者应该都已经接触过了,C 标准库 中的 fopen(), fclose(), fread(), fwrite()等函数的操作对象就是 FILE。
数据内容就是 FILE,数据的读写操作就是 fread()、fwrite(),fopen() 类比于构造函数,fclose() 就是析构函数。
2、继承
继承就是基于现有的一个类去定义一个新类,这样有助于重用代码,更好的组织代码。在 C 语言里面,去实现单继承也非常简单,只要把基类放到继承类的第一个数据成员的位置就行了。
例如,我们现在要创建一个 Rectangle 类,我们只要继承 Shape 类已经存在的属性和操作,再添加不同于 Shape 的属性和操作到 Rectangle 中。
3、多态 C++
语言实现多态就是使用虚函数。在 C 语言里面,也可以实现多态。 现在,我们又要增加一个圆形,并且在 Shape 要扩展功能,我们要增加 area() 和 draw() 函数。
但是 Shape 相当于抽象类,不知道怎么去计算自己的面积,更不知道怎么去画出来自己。而且,矩形和圆形的面积计算方式和几何图像也是不一样的。
4、虚表和虚指针
虚表(Virtual Table)是这个类所有虚函数的函数指针的集合。
虚指针(Virtual Pointer)是一个指向虚表的指针。这个虚指针必须存在于每个对象实例中,会被所有子类继承。
5、在构造函数中设置vptr
在每一个对象实例中,vptr 必须被初始化指向其 vtbl。最好的初始化位置就是在类的构造函数中。
事实上,在构造函数中,C++ 编译器隐式的创建了一个初始化的vptr。在 C 语言里面, 我们必须显示的初始化vptr。下面就展示一下,在 Shape 的构造函数里面,如何去初始化这个 vptr。
strust 貌似是一个关键字,一般的c语言教材都会有用法,看书吧,还有就是receive_Buffer 是个自定义函数名,_是编程人员为了好看懂而加的,也可以不加,一般我们按照你的函数用途用对应英文命名!比如这个意思一看就知道是接收缓存区字符串的函数,你也可以自定义,用汉语拼音也没关系,比如FanHui_HanShuTi(),当然我推荐还是英文好,Back_main(){};
1、osal_msg_receive()返回一个Byte型的指针,再把该指针转化成afIncomingMSGPacket_t,赋值给MSGpkt。
2、首先(afIncomingMSGPacket_t *)是个强制类型转换,转换结果赋值给MSGpkt。假设osal_msg_receive是个函数,SampleApp_TaskID是传入的行参值,这句代码的意思就是把SampleApp_TaskID传入函数osal_msg_receive,计算结果强制转换成afIncomingMSGPacket_t *类型,然后赋值给MSGpkt。
char buff2[1024*10];
int receiveLen;
/*调用accept函数,等待客户端的连接*/
client_fd=accept(sockfd,(struct sockaddr *)client_sockaddr,sin_size
/*调用recv函数接收客户端的请求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)
typedef int (WINAPI ICEPUB_TCPSENDANDRECEIVETEXT)(char *sendBuff, int sendBuffLen,char *recvBuff,int recvMaxLen,char* serverIP,int serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT *icePub_tcpSendAndReceiveText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT *)GetProcAddress(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox(buff2);
我给你一个程序吧,我做项目经常要用的模板
功能实现QQ的群聊,点对点两天