随笔分类 - C/C++语言
摘要:C++中extern “C”含义深层探索1.引言C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C 语言的全局变量和函数所采用的编译和链接方式与C 语言完全相同。作为一种欲与C 兼容的语言,C++保留了一部分过程式语言的特点,因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C 有明显的不同。2.从标准头文件说起某企业曾经给出如下的一道面试题:面试题为什么标准头文件都有类似以下的结构?#ifndef _TEST_H#define _TEST_H#ifdef __cplusplus
阅读全文
摘要:浮点数,是指小数点在数据中的位置可以左右移动的数据。它通常被表示成: N = M* RE 这里的M(Mantissa)被称为浮点数的尾数,R(Radix)被称为阶码的基数,E(Exponent)被称为阶的阶码。计算机中一般规定R为2、8或16、是一个确定的常数,不需要在浮点数中明确表示出来。因此,要表示浮点数,一是要给出尾数M的值,通常用定点小数形式表示,它决定了浮点数的表示精度,即可以给出的有效数字的位数。二是要给出阶码,通常用整数形式表示,它指出的是小数点在数据中的位置,决定了浮点数的表示范围。浮点数也要有符号位。在计算机中,浮点数通常被表示成如下格式: MsEM Ms是尾数...
阅读全文
摘要:一、C++标准异常try{ …… throw <exception-data> ……}catch (<exception-declaration 1>){ ……}catch (<exception-declaration 2>){ ……}try块中的throw会抛出一个数据<exception-data>,比如一个整数,一个字串,或是其他自定义类型的数据。这时,当前程序中止执行,开始查找catch入口。throw抛出的数据类型与catch入口的<exception-declaration>数据类型必须匹配,这一点类似函数调用的形参、实
阅读全文
摘要:MFC较好地将异常封装到CException类及其派生类中,自成体系,下表给出了MFC 提供的预定义异常:异常类 含义 CMemoryException 内存不足 CFileException 文件异常 CArchiveException 存档/序列化异常 CNotSupportedException 响应对不支持服务的请求 CResourceException Windows 资源分配异常 CDaoException 数据库异常(DAO 类) CDBException 数据库异常(ODBC 类) COleException OLE 异常 COleDispatchException 调度(自动
阅读全文
摘要:如果在程序的代码中出现了异常情况——也就是说,通过当前语境无法获得足够的信息以决定应该采取什么样的措施——程序员可以创建一个包含错误信息的对象并把它抛出当前语境,通过这种方式将错误信息发送到更大范围的语境中去。这种方式被称为“抛出一个异常”。 try块 如果在一个函数内部抛出了异常(或者被这个函数所调用的其他函数抛出了异常),这个函数就会因为抛出异常而退出。如果不想因为一个throw而退出函数,可以在函数中试图解决实际产生程序设计问题的地方(和可能产生异常的地方)设置一个try块。这个块被称做try块的原因是程序需要在这里尝试调用各种函数。try块只是一个普通的程序块,由关键字try引导:t.
阅读全文
摘要:从语法上,在C++中(只讨论C++中)。class和struct做类型定义时只有两点区别: (一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理; (二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。 除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。 不能因为学过C就总觉得连C++中struct和class都区别很大,下面列举的说明可能比较无聊,因为struct和class本来就是基本一样的东西,无需多说。但这些说明可能有助于澄...
阅读全文

浙公网安备 33010602011771号