c 面向对象编程,C 面向对象编程

1,C 面向对象编程#include<stack>using namespace std;class A};void main()stack<A> _stkA;A a;A.push_back(a);}私有变量:栈指针构造函数:申请内存空间,栈指针指向栈顶解构函数:释放内存空间Push 方法:把传入参数赋值给栈指针所指的地址,指针-1Pop属性:指针+1,返回指针所指的内容Clear方法:指针指向栈顶异常:Push遇到栈已满、Pop遇到栈已空class StackXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}
2,什么是面向对象编程它通过给程序中加入扩展语句,把函数“封装”进编程所必需的“对象”中 。面向对象的编程语言使得复杂的工作条理清晰、编写容易 。说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言 。对象并不与传统程序设计和编程方法兼容,只是部分面向对象反而会使情形更糟 。除非整个开发环境都是面向对象的,否则对象产生的好处还没有带来的麻烦多 。有人可能会说PHP不是一个真正的面向对象编程的语言 ,  PHP 是一个混合型 语言,你可以使用面向对象编程,也可以使用传统的过程化编程 。然而,对于大型项目的开发,你可能想需要在PHP中使用纯的面向对象编程去声明类,而且在你的项目开发只用对象和类 。随着项目越来越大,使用面向对象编程可能会有帮助,面向对象编程代码很容易维护 , 容易理解和重复使用,这些就是软件工程的基础 。在基于Web的项目中应用这些概念就成为将来网站成功的关键 。对象(Object)是问题域或实现域中某些事物的一个抽象 , 它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体 。关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示 , 这种计算机表示也称为对象 。简单的来说,一个人就是一个对象 , 一个尺子也可以说是个对象 。面向"对象"编程,很重要的一点就是其中必须要意识到,对象,对象,一切万物皆为对象,比如说具体的一个人,它也是一个对象,这个对象有哪些特征呢?又有哪些行为呢?对于特征:身高,高还是矮,有多高体重,轻不是重,有多重,等等到,对于行为:能不能走路,能不能吃饭,能不能跑,等等,,根对象紧密联系在一起的是"类"那就是某一类对象的模型,比如说汽车生产时需要的模型,它是一个抽象体,而对象是一个具体的某样东西.自我感觉,面向对象编程,最重要的一点,就是自己要领悟到,面对的是对象.一句话, 就是按照自然界事物的存在方式来组织程序.面向对象主要相对与面向过程来说的...也就是说,在编程时候把需要任一实现看成是面对对象的操作... 这是在c++出现之后的一种编程思想,把任意看成是能够操作的对象可以让程序的条理更加清晰,更加容易理解...不过,我觉得这只是一种看待的方式,就编程本身而言都是面向对象和面向过程相结合的... 对象便于封装可以操作的东西,给编程提供接口,让他们等到共同协作完成某个工作,即是一种过程...就语言来说,c++ java vb等都提供面向对象的模式,当然java是典型的代表,它是完全面向对象的,"万事万物皆对象"...面向对象编程,英文简写oop(Object-Oriented Programming)
3,程序设计中面向对象指的什么面向过程:将所做事情的步骤一步一步的分析并实现 。面向对象:描述某一个事物做某件事情的行为 。两者区别:前者主要以步骤来划分问题,后者主要以功能来划分问题 。比如:一个老板,他直接管理的是每个部门经理或负责人,如 , 人力部、产品部、市场部等 。至于,各部门内部具体工作事项,由各自负责人去安排就行了 。这就是面向对象 。面向对象基本特征:1. 封装:把客观事物封装成抽象的类,对外界实现接口调用,可以隐藏内部方法实现细节 。比如:计算机语言加减乘除 , 我们只需提供数字与符号即可得出结果 。具体怎么计算我们不知道底层实现 。2. 继承:让一个对象拥有另一个对象的属性和方法,同时该对象可以拥有自己独有的属性和方法 。例如:狗和人都继承自动物类,都有身高和体重等属性 , 都会吃饭、走路、睡觉等方法,但是人还有身份证,还可以说话 。3. 多肽:让一个方法面对不同类型的对象做出不同的响应 。例如:狗和人--->吃饭  , 狗吃饭不用工具,人吃饭要用筷子等工具 。作为一个计算机专业刚毕业的大学生 , 上了各种编程课程 , 现在发现这个问题我也很模糊,今天刚总结了网上的资料做了个人的理解,希望对你有帮助 。1、面向对象编程是一种很重要的编程思想和软件工程方案 , 最典型的语言是C++,其次JAVA,.NET等都采用了面向对象编程思想,而象C语言则是典型的面向过程编程2、程序设计中面向对象指的有两方面:采用面向对象语言;采用面向对象的软件工程思想 3、更多交流参考我空间主页有关文章面向对象是一种程序设计方法,它以对象作为基本的单元来构建系统,它利用对象将系统的复杂性隐藏在对象里(也就是常说的封装),从而构建大型的工业级系统和大型系统(注意是工业及系统和大型软件系统而不是播放器等小型的系统),当然也可以用与小型软件程序的开发 。面向对象包括三个过程:面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP) 。1 。什么是面向对象的分析?面向对象的分析指的是分析要开发的系统的各个方面,从而找出类和对象(不是你想有什么对象就有什么对象的) 。2.什么是面向对象的设计?是指我们设计出一些特殊的类(如:抽象类,目的:来表达系统中不同对象的共性)和机制(让系统的对象互相协作,提供系统的功能);3.什么是面向对象的编程?是指我们用特定的面向对象编程语言来实现我们的设计,实现我们发现的对象和类 。不要以为面向对象就是你的教材里讲的那些东西,面向对象还有许许多多的概念,而这些概念常常被忽略、吴用 。比较常见的概念:http://wenwen.sogou.com/z/q765880817.htm?oldq=1用面向对象设计你还要用学一样东西:UML(统一建模语言),这个语言在国人教材中没提到到(实际上没提到的东西多了) 。建议:去书店认认真真地找一本书国外的关于面向对象的书籍,这样你才能学到面向对象的精髓【c 面向对象编程,C 面向对象编程】
4 , c面向对象编程必须要注意哪几点一、宏观:将C++视为C、面向对象C++、模版C++、STL C++组成的语言联邦 。任何人不得添加任何东西到STL命名空间不要轻易忽略编译器的警告一定程度的使用测试驱动的开发方法软件实体(类、模块、函数)应该是可扩展的,但是不可修改的多采用敏捷的设计方法(个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划)经常性的交付可以工作的软件,交付的时间间隔越短越好在整个项目开发期间,业务人员和开发人员必须天天都在一起工作围绕被激励起来的个人来构建项目在团队内部,多进行面对面的交流提倡可持续的开发速度使要构造的系统最简单(不要设计不需要的功能,不要过分设计)最好的架构、需求和设计出自于自组织团队每隔一段时间 , 团队会在如何才能更有效的工作方面进行反省,然后相应的对自己的行为进行调整结对编程是一种比较好的选择不能容忍重复的代码持续的对代码进行重构要做计划游戏高层模块不应该依赖于底层模块 。二者都应该依赖于抽象尽可能的保证:抽象不应该依赖于细节 , 细节应该依赖于抽象(任何变量都不应该持有一个指向具体类的指针或引用;任何类都不应该从具体类派生;任何方法都不应该覆写它的任何基类中已经实现了的方法)每个编程单元尽可能的向使用者提供使用承诺:例如资源回收保证、数据一致性保证、无异常保证尽可能的在程序中处理所有可能的异常,而且尽可能的精细 。(try...catch)应该让程序体面的退出:在出现非计划内问题时自动产生dump文件 。(利用SetUnhandledExceptionFilter调用MiniDumpWriteDump)要先设计好类,建好各个类的文件,才能写代码 。用pragma once代替h文件头二、类:让接口容易被正确使用 , 不易被误用设计class犹如设计type将成员变量声明为private尽量不要让类支持隐式类型转换friend成员函数是类接口的一种表现方式,但能避免使用就尽量避免避免使用handles指向对象内部成分慎重使用inline(小函数的确该用inline,但是考虑到inline函数无法调试,所以应谨慎)确定public继承表现出is-a关系(即Liskov替换原则,永远可以用派生类取代基类)避免覆盖继承而来的名称(基类函数重载 , 派生不重载,则其他覆盖;派生重载基类函数,则基类函数覆盖;变量也可以覆盖)区别接口继承和实现继承(纯接口(virtual=0),接口+朴素实现(virtual=0+实现),接口+强制实现(non-virtual),以上为public继承 , private继承全部是为了继承实现,而不继承接口)根据上一条,只要出现virtual,就尽可能让它=0(成虚基类)根据上上条 , 派生类不应该覆写non-virtual函数绝不重新定义继承而来的缺省参数值private继承意味着继承实现 , 是composition,实现的是has-a逻辑 。protected继承尽量少用 。两种继承在设计层面完全没有意义,只是实现层面的代码重用 。凡是独立的对象都必须有非0大?。斩韵蠡岚膊逡桓鯿har)一个类只负责一件事一个类只提供一种内聚的接口(不应该让用户依赖于他们不使用的方法)类内部的类型定义尽量放在public,否则不能作为返回值类中的大属性都应该用智能指针(或返回STL时应使用move语意)凡是类内私有变量加m前缀 , 凡事类似私有仿函数,加or后缀静态成员初始化函数用静态类替代,可以顺便用个functor四大函数(构造函数、拷贝构造、赋值、析构)若有多态继承体系,基类析构函数尽量声明为virtual如果类内new了对象,并且该类负责delete,则必须要定义拷贝构造函数和赋值操作符 。若不想使用编译器自动生成的函数,就该默认拒绝(将其声明在private或protected)别让异常逃离析构函数,C++不喜欢析构函数吐出异常绝不在构造函数或析构函数中调用virtual函数(当然其他函数调用virtual可以实现template method等有趣的模式)拷贝函数应该确保拷贝了对象内所有成员和基类部分不要以某个拷贝函数去实现另外一个拷贝函数(一个是copy函数,一个是copy assignment函数),应该把共同部分放在第三个独立函数三、函数:尽量将函数参数声明为const另operator =返回一个*this的引用,并且在operator =中处理自我赋值函数参数的构造顺序不确定 , 所以不要在函数参数中执行new操作 , 或将多个函数参数都用函数来表示(否则若一个发生异常 , 其他有可能不会执行) 。尽量用传递const 引用代替传值non-member,none-friend函数有封装性好,跨类型操作等能力,因此在需要的时候没有必要局限于把函数全部放到类里的传统规则 。若所有参数都需要类型转换,请为此采用non-memeber函数(典型的是双目操作符重载)凡是需要对指针参数做提领操作,都需要检查是否为BULL发布版程序维持程序的勉强工作比crash更好;debug版让程序尽量crash 。c++面向对象编程必须要注意一点,那就是C和C++是两种语言 。弄清楚面向对象的本质和意义学明白类、继承、重载、等概念并灵活运用!多练习!这个比较多!1、编写的对象的要素2、对象的成员和函数的保密性3、函数的融合性4、继承和派生5、类的构造函数、析构函数等1、必需时刻明白面向对象编程中要扮演的两个角色,一个就是你,类的设计者,一个就是用户,类的使用者,你的设计是针对用户而言的,当然你也可能是身兼两职,同时是设计者又是用户 。2、设计一个类时,将声明放于头文件,定义放在cpp文件中 , 因为类是给用户使用的,将声明放在头文件中,用户便可以方便使用,而定义在cpp文件中主要是为了两点,一提高编译效率,二避免用户包含文件后发生重定义 。3、 声明完一个类后必须以分号结束 , 因为声明完一个类后后面还可以加一个对象名,用来声明该类的实例化对象,分号; 不是表示声明的结束,而是表示声明该类对象的结束,如果单纯一个分号表示没有声明任一对象 。4、 避免在构造函数里实例化本类,否则会发生递归死循环 。我也是在中国IT实验室看到的这个,想要进一步了解就去里面看看 , 一定要把这个分赏给我啊 。。

    推荐阅读