问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

编程必须明确清楚这几点,学习C语言和C++

发布网友 发布时间:2022-04-30 13:33

我来回答

2个回答

热心网友 时间:2022-06-22 16:11

一、宏观:
将C++视为C、面向对象C++、模版C++、STL C++组成的语言联邦。
任何人不得添加任何东西到STL命名空间
不要轻易忽略编译器的警告
一定程度的使用测试驱动的开发方法
软件实体(类、模块、函数)应该是可扩展的,但是不可修改的
多采用敏捷的设计方法(个体和交互胜过过程和工具、可以工作的软件胜过面面俱到的文档、客户合作胜过合同谈判、响应变化胜过遵循计划)
经常性的交付可以工作的软件,交付的时间间隔越短越好
在整个项目开发期间,业务人员和开发人员必须天天都在一起工作
围绕被激励起来的个人来构建项目
在团队内部,多进行面对面的交流
提倡可持续的开发速度
使要构造的系统最简单(不要设计不需要的功能,不要过分设计)
最好的架构、需求和设计出自于自组织团队
每隔一段时间,团队会在如何才能更有效的工作方面进行反省,然后相应的对自己的行为进行调整
结对编程是一种比较好的选择
不能容忍重复的代码
持续的对代码进行重构
要做计划游戏
高层模块不应该依赖于底层模块。二者都应该依赖于抽象
尽可能的保证:抽象不应该依赖于细节,细节应该依赖于抽象(任何变量都不应该持有一个指向具体类的指针或引用;任何类都不应该从具体类派生;任何方法都不应该覆写它的任何基类中已经实现了的方法)
每个编程单元尽可能的向使用者提供使用承诺:例如资源回收保证、数据一致性保证、无异常保证
尽可能的在程序中处理所有可能的异常,而且尽可能的精细。(try...catch)
应该让程序体面的退出:在出现非计划内问题时自动产生mp文件。(利用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大小(空对象会安插一个char)
一个类只负责一件事
一个类只提供一种内聚的接口(不应该让用户依赖于他们不使用的方法)
类内部的类型定义尽量放在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。
希望可以帮到你,谢谢!

热心网友 时间:2022-06-22 16:11

哪几点?没有说啊?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
老师侮辱学生是否犯法 开启河南航拍新篇章 河南省航拍协会第一次会员代表大会召开 我想问下poscer m-3032款型手表售价是多少??? wp6m是啥意思 看图软件哪个好哪个看图软件好 5款强大到离谱电脑软件,都是效率神器!从此远离加班 在武汉买一套房大概要多少钱 武汉华润翡翠城的优缺点 k12教育为什么会被整顿 国家为什么要叫停K12教育? 我想学C语言和电脑编程,如何开始呢? 学习编程是C语言好还是C++好? 江苏辖区农商银行是不是套路贷? 农村商业银行、农业银行、农行是一个概念吗 怎么把安卓手机上的微信记录转到苹果手机上 手机一定要贴膜么,不贴会怎么样? 手机贴膜不贴膜的手感 你们有没有感觉手机不贴膜屏幕感觉黏糊糊的感觉,贴膜感觉触摸顺滑许多!不贴膜更容易占指纹!你们有没有 一人有限公司是不是只能开一个呢? 法人能注册几个一人有限公司 晚上吃夜宵等于给鬼吃 一个人(自然人)只能设立一个有限责任公司吗? 一个人可否同时注册一个有限公司和一个个体工商户? 注册一人公司好还是多人公司好 右键无法删除excel行和列,原因是什么? 一个人可以注册几个一人有限公司?? 一个人可以重复注册公司吗? 一个人只能注册一家公司吗? excel空白表怎么老有一列删不掉- 问一问 存折上的现销是什么意思 ...荣耀平板5 华为平板M5青春版 华为畅享平板 小米平板4? 华为平板m5青春版和小米4平板哪个好? 咋样炖豆腐不会烂? 东北宛如童话的雪蘑菇景观,如何描述这一美景? 《男主这朵黑心莲(女尊)》txt下载在线阅读全文,求百度网盘云资源 男主这朵黑心莲_by亮若星辰_txt全文免费阅读 如何学编程啊!是先学C++还是C语言呢? 写东北雪景的作文800字 有什么男主算计女主嫁给他的小说?像闲云公子一样 新人想学编程,应该学c语言还是c++ 现在起点女频流行什么题材的小说? 菜鸟学编程,c语言的。。。 要学编程为什么要学C语言? 有没有女尊文,一对一的男主一开始很讨厌女主后来慢慢爱上的那种? 学编程是先学数据结构还是学C语言 女主穿越到女尊世界是个捕快 男主叫紫衣 开始时讨厌女主,勾引女主上司,后来喜欢上女主 女尊快穿女主容卿 有没有男主很腹黑,爱吃醋,爱嫉妒设计女主喜欢他的小说,最好是女尊的 江绵绵是谁的孩子 新华智慧校园个人简历为什么性别改不了