小学生积累优美的短句
发布时间:2019-08-11 19:13:59
作者:xhs
小学生积累优美的短句:小编是一个有着6年工作经验的工程师,关于C++编程,我要做的是资料的整合,一个完整的C++编程学习路线,学习资料和工具,可以输入我的组10048,-83029集合,免费给大家,希望大家也能用自己的E成为下一个优秀的程序员面向对象语言更接近人们的思维方式,在很大程度上降低了代码的复杂性,提高了代码的可读性和可维护性的同时,传统的C代码也可以设计得更可读、维护方便、复杂度低、美观。UL代码,本文将以一个实际的例子来说明这一点。除了提供基本数据类型外,C还为用户提供了自定义数据类型的能力。也就是说,结构。在C中,可以使用结构来表示任何实体。结构是面向对象语言中类概念的雏形,例如:typedef struct float x;float y;point;定义平面坐标系中的一个点,其中有两个域,即x坐标和y坐标。结构中的域称为结构的成员。结构中的数据类型可以是简单的数据类型或其他结构,甚至结构本身也可以嵌套。例如,标准的链表结构可以定义为://int data length;//data length struct node*next;//points to the next node node;可以看到,node中的下一个指针又是node类型。函数指针指针是C的灵魂,C比其他语言更灵活和强大。因此,学习C语言必须掌握好指针。函数指针,即指向函数在内存中的第一个地址映射的指针,通过函数指针,可以将函数作为参数传递给另一个函数,并在适当的时候调用,从而实现异步通信等函数。例如,Unix/Linux系统中的信号注册函数,其原型如下:函数指针是结构的成员。如前所述,结构的成员可以是简单的数据结构、其他结构,当然还有指针。当函数指针用作结构的成员,并且这些函数仅用于操作结构中的数据时,可以形成一个单独的实体,该实体同时具有数据和数据操作,因此自然会产生类的概念。一般来说,继承、封装和多态性被认为是面向对象语言必须支持的三个特性,并且正是通过这三个特性,面向对象优于面向过程。由于语言开发者的宣传或其他原因,面向对象的思想在表面上可以通过语言作为载体来实现,但实际上,面向对象是一种软件设计思想,与具体的实现完全无关。尽管如此,不可否认的是,这些所谓的纯面向对象语言在代码的可读性以及与自然人类思维的匹配程度方面比面向过程的语言要好得多。在语言层次上,我们通常描述一个对象,我们通常需要描述这个对象的一些属性。例如,盒子是一个实体,它有六个边,如颜色、重量,不管它是空的还是空的,并且可以把东西放进去,把东西拿出来。在面向对象语言中,这样的对象通常被抽象为类:class box clolr color;int weight;boolean empty;to put(something);something the get();box。放(蛋糕);盒子。盒子。get();//从框中取出一些东西。在面向过程的语言中,实体通常被传递给一个贯穿整个世界的函数。以Box为例。//在get(box)框中放一块蛋糕;//从框中取出一些东西,显然,第一种代码形式更有意义,因此面向对象语言主要提供这一级别的详细支持,使代码更易于阅读和理解。C语言作为一种灵活而简单的语言,我们完全可以通过C提供一种简单的机制来实现这样一种更优雅的代码形式。如前所述,面向对象是软件设计的一个概念,它独立于语言。在本节中,我使用一个列表作为如何用C语言设计面向对象代码的示例。定义接口是面向对象语言中更重要的概念之一。接口只执行外部致力于实现接口的实体可以执行的操作,但不公开其实现方式。其优点是,实现人员可以在不接触接口使用者代码的情况下调整实现。让我们看看链表的接口定义:清单1。链接列表的接口定义定义定义了节点结构typedef struct node void*data;struct node*next;节点;结构列表struct list*this;node*head;int size;void insert(*)(void*node);void(*drop)(void*node);void(*)clEAR();int*getsize()();void*(*)get(int index);void print(*);列表;void insert(void*node);void drop(void*node);void the cl ear();int getsize();void*get(int index);void the print();在endif/*ilist_h*/ilist接口中,您可以清楚地看到insert、drop、cl对列表实体(即对象)执行ear、getsize、get(index)和print操作。node*node=null;list*list=null;void insert(void*node);void drop(void*node);void the clear();int getsize();void the print();void*get(int index);list*listconstruction()list=(list*)malloc(sizeof(list));node=(*)malloc(sizeof(node));list->head=node;list->insert=insert;list->drop=drop;list->clear=clear;list->size=0;list->getsize=getsize;list->get=get;list->print=print;list->_this=list;//用_this pointer return(list*)列表保存列表本身;不应该是什么Ed是这里的_this指针,它确保列表上的外部操作映射到_this上的操作,从而简化了代码。void insert(void*node)node*current=(node*)malloc(sizeof(node));current->data=node;current->next=list->_this->head->next;list->_this->size)++;//删除指定节点void drop(void*node)node*t=list->_this->head;node*d=null;int i=0;for(i;i_this->the size;i++)d=list->_this->head->next;if(d->data==(*)node->data)list->_this->head->next=d->next;free(d);(the list->_this->size-;break;else->listis->head=list->u this->head->next;list->u this->head=t;其他实现代码可以在下载部分看到,这里有限的空间不再是有意义的列表。现在,我们已经完成了所有的工作,以确保向用户公开的API尽可能干净和优雅,现在是测试的时候了:int main(int argc,char**argv)list*list=(list*)listconstruction();int main(int argc,char**argv)list*list=(list*)listconstruction();创建一个新的链接list//插入一些值到test list->insert(“apple”);list->insert(“borland”);list->insert(“cisco”);list->insert(“dell”);list->insert(“electrilux”);list->insert(“firefox”);list->insert(“google”);list->print();//打印e整个list printf(“list size=%d\n”,list->getsize());节点节点;节点。data=“Electrolux”;节点。next=null;list->drop(&node);delete node node.data=“cisco”;节点。next=null;list->drop(&node);//删除另一个节点list->print();//再次打印printf(“list size=d\n”,list->getsize());list->clear();empty list返回0;图1。运行结果总之,C所诞生的Unix平台促进了一种设计理念,使设计尽可能简单,允许用户将这些简单的工具(如构建块)连接到功能强大、完整的应用程序中。应该说,C语言更好地继承了这一点,C语言非常简洁,非常强大,而且由于C语言的早期诞生,面向对象的思想在当时还不成熟,出现了大量C应用的过程类型,从而给人们一种C语言是一种错觉,面向过程的语言实际上C只是提供了一些简单、强大和通用的能力,至于你想把它分成块的东西都是你自己的。小学生积累优美的短句
版权声明:本文内容由互联网用户投稿整理编辑发布,不拥有所有权,不承担应有相关法律责任。如果文章、图片有涉嫌抄袭的内容,请发送到邮箱举报,且提供抄袭的相关证据,一但查实,会在24小时删除涉嫌侵权内容。