个人理财 避免了C ++程序中的错误 - 虚拟

避免了C ++程序中的错误 - 虚拟

目录:

视频: 第30讲 小甲鱼 C++ 错误处理和调试 2025

视频: 第30讲 小甲鱼 C++ 错误处理和调试 2025
Anonim

在删除或至少了解编译期间生成的所有警告之前,请勿开始调试代码。启用所有的警告信息,如果你忽略它们,你是不行的。如果你不明白这个警告,那就查一查。你不知道 会伤害你。 采用清晰一致的编码风格

编码风格清晰一致,不仅增强了程序的可读性,而且减少了编码错误。请记住,解密C ++语法所花费的大脑力量越少,您留下的思考手头程序的逻辑就越多。良好的编码风格使您能够轻松完成以下任务:

<!区分类名称,对象名称和函数名称

根据名称区分对象
  • 区分预处理器符号与C ++符号(即#defined对象应该脱颖而出)
  • 在同一级别识别C ++代码块(这是一致缩进的结果)
  • 另外,您需要建立一个标准模块头,提供有关模块中功能或类的信息,作者(大概就是你),日期,你使用的编译器的版本和修改历史记录。
  • <!最后,所有涉及单个项目的程序员都应该使用相同的风格。试图破译一个不同编码风格的程序是令人困惑的。

在编写代码时注释代码

如果在编写代码时注释代码,而不是等到一切正常,然后再返回并添加注释,则可以避免发生错误。没有花时间写出大量的头文件和函数描述,直到后来才可以理解,但是在编写代码的时候总是有时间添加简短的注释。

简短的评论应该是有启发性的。如果他们不是,他们不值钱,你应该做的东西,而不是。当你试图让你的程序工作时,你需要所有的启发。当你看到你前几天写的一段代码时,那些简短的描述性的评论,对于帮助你弄清楚你到底想做什么,可以做出巨大的贡献。另外,一致的代码缩进和命名约定使代码更容易理解。当代码完成后,代码很容易阅读,这一切都非常好,但是在编写代码时,代码的易读性同样重要。那时你需要帮助。

每个路径至少单步执行一次

作为一名程序员,了解程序的功能非常重要。没有什么能让你更好地感觉到,在一个好的调试器中,单步执行程序会发生什么。 (包含在交互式编译器的IDE中的调试器工作得很好。)除此之外,当你编写一个程序时,你有时需要原材料来弄清楚一些奇怪的行为。当它们投入使用时,没有什么比单步执行新功能更好的了。

最后,当一个功能完成并准备添加到程序中时,每个逻辑路径至少需要经过一次。当函数被自己检查时,错误更容易被找到,而不是被其他函数抛入其中之后 - 而且你的注意力已经面临新的编程挑战。

避免重载操作符

除了使用两个流I / O操作符

操作符<<()

操作符>>()

和赋值操作符

操作符=() ,你应该暂缓重载操作符,直到你对C ++感到满意为止。尽管一组好的重载操作符可以增加新类的实用性和可读性,但重载操作符(除了刚刚列出的三个操作符之外)几乎是不必要的,并且可以作为新程序员显着增加调试困难。您可以通过定义和使用适当的公共成员函数来获得相同的效果。 在您进行C-Plus-Plussing几个月之后,请随时返回并重新开始将操作员重载到您的心中。 平衡堆处理 一般来说,程序员应该在相同的层次上分配和释放堆内存。 “如果成员函数 MyClass:: create() 分配了一块堆内存并将其返回给调用者,那么应该有一个成员函数

MyClass:: release()

将内存返回给堆。具体来说,

MyClass:: create() 不应该要求父函数释放内存本身。这当然不能避免所有的内存问题 - 父函数可能会忘记调用 MyClass:: release() - 但它确实减少了一些可能性。 使用异常来处理错误 C ++中的异常机制旨在方便有效地处理错误。现在这个功能已经标准化了,你应该使用它。生成的代码更容易编写,更易于阅读和维护。另外,其他程序员也期待它 - 你不想让他们失望,是吗? 避免多重继承 多重继承,如运算符重载,增加了另一个级别的复杂性,在刚刚起步时不需要处理。幸运的是,大多数现实世界的关系可以用单一的继承来描述。 随意使用来自商业库的多重继承类,例如Microsoft MFC类。微软已经花费了相当多的时间来设置它的类,它知道它在做什么。

在对C ++的理解水平感到满意后,尝试设置一些多重继承层次结构。这样,如果你需要的话,你就可以做好准备了。

避免了C ++程序中的错误 - 虚拟

编辑的选择

Sql数据类型 - 虚拟

Sql数据类型 - 虚拟

这里是ISO / IEC标准SQL识别的所有形式数据类型的列表。除此之外,您可以定义从这些派生的其他数据类型。精确数字:INTEGER SMALLINT BIGINT NUMERIC DECIMAL近似数字:REAL DOUBLE PRECISION FLOAT二进制字符串:BINARY BINARY VARYING BINARY LARGE OBJECT布尔值:BOOLEAN字符串:CHARACTER ...

SQL WHERE子句谓词 - 虚拟子

SQL WHERE子句谓词 - 虚拟子

谓词归结为TRUE或FALSE结果。您可以通过应用WHERE子句(其谓词排除不需要的行)来从SQL查询的结果中筛选出不需要的行。比较谓词=等于 不等于 小于等于>大于> =大于...

编辑的选择

如何在QuickBooks 2014电子邮件发票 - 傻瓜

如何在QuickBooks 2014电子邮件发票 - 傻瓜

您可以通过电子邮件发票QuickBooks的。要做到这一点,请点击电子邮件按钮,它出现在主选项卡的创建发票屏幕的顶部。当QuickBooks显示“发送发票”对话框时,指定要使用哪个电子邮件帐户(网络邮件,电子邮件应用程序(例如Microsoft Outlook)或...

如何在QuickBooks 2010中输入帐单 - 傻瓜

如何在QuickBooks 2010中输入帐单 - 傻瓜

如果您在设置过程中告诉QuickBooks您要跟踪未付帐单(也称为应付帐款),您可以在收到帐单时输入帐单。当你这样做时,QuickBooks会跟踪未付帐单。如果您以前没有在QuickBooks中记录过物品收据如果您输入的钞票是...

如何在QuickBooks Online中输入帐单 - 虚拟币

如何在QuickBooks Online中输入帐单 - 虚拟币

输入您从供应商处收到的帐单QuickBook Online的帐单交易。 QBO跟踪账单作为应付款项,这是您的业务的责任 - 您欠的钱,但尚未支付。大多数进行账单交易的公司都是这样做的,因为他们收到了相当数量的账单,并且...

编辑的选择

虚拟主机常见的电子邮件问题 - 虚拟人物

虚拟主机常见的电子邮件问题 - 虚拟人物

最大最简单的方法发现您的网站托管电子邮件存在问题时,您尝试拿起您的新邮件,发现您长时间没有收到任何邮件。这不是一个科学的方法,但不接收电子邮件,或从其他人那里得到的报告...

如何备份您的虚拟主机数据库 - 虚拟机

如何备份您的虚拟主机数据库 - 虚拟机

使数据库备份成为优先事项。在发生损坏或丢失的情况下,可以轻松地重新创建网站设计,但是数据库中的数据更难重建,除非您有一个好的备份。您的主机可能已经将您的数据库备份为其数据库的一部分...

为您的网站和店面找到一个主机 - 傻瓜

为您的网站和店面找到一个主机 - 傻瓜

计划阶段,寻找您的网站的主机,您的博客,以及您设置销售您的产品的任何店面是一个基本要求。您可以设置多种托管服务的商店,从拍卖网站到网上商城到您自己的互联网服务...