1、1、 constconstintfunc(constint/拷 贝 构 造 函 数 的原 型 , 参 数 是 常 量 对 象 的 引 用 。 由 于 拷 贝 构 造 函 数 的 目 的 是 成 员 复 制 , 不 应修 改 原 对 象 , 所 以 建 议 使 用 const 关 键 字 。3、 C+里 try,catch,throw 是什么意思,用法?try 里面的是一个程序块,你把可能发生异常的程序块放到 try 中执行, 如果真发生异常的话,try 就把这个异常抛出, 这个抛出过程由 throw 进行,抛出异常后, 由紧跟在 try 块后的 catch 接收并解决这个异常4、class 的
2、标准格式是 class 类名;注意大括号后面是有一个分号的,这是一般初学者容易犯得错误!5、static_cast用 法 : static_cast( expression ) 该 运 算 符 把 expression 转 换 为 type-id 类 型 , 但 没 有 运 行 时 类 型 检 查来 保 证 转 换 的 安 全 性 。 它 主 要 有 如 下 几 种 用 法 : 用 于 类 层 次 结 构 中 基 类 ( 父 类 ) 和 派 生 类 ( 子 类 ) 之 间 指 针 或 引 用的 转 换 。进 行 上 行 转 换 ( 把 派 生 类 的 指 针 或 引 用 转 换 成 基 类 表
3、 示 ) 是 安 全 的 ;进 行 下 行 转 换 ( 把 基 类 指 针 或 引 用 转 换 成 派 生 类 表 示 ) 时 , 由 于 没 有 动态 类 型 检 查 , 所 以 是 不 安 全 的 。 用 于 基 本 数 据 类 型 之 间 的 转 换 , 如 把 int 转 换 成 char, 把 int 转 换成 enum。 这 种 转 换 的 安 全 性 也 要 开 发 人 员 来 保 证 。 把 空 指 针 转 换 成 目 标 类 型 的 空 指 针 。 把 任 何 类 型 的 表 达 式 转 换 成 void 类 型 。注 意 : static_cast 不 能 转 换 掉 ex
4、pression 的 const、 volatile、 或者 _unaligned 属 性 。C+中 static_cast 和 reinterpret_cast 的 区 别C+primer 第 五 章 里 写 了 编 译 器 隐 式 执 行 任 何 类 型 转 换 都 可 由static_cast 显 示 完 成 ;reinterpret_cast 通 常 为 操 作 数 的 位 模 式 提 供 较 低层 的 重 新 解 释1、 C+中 的 static_cast 执 行 非 多 态 的 转 换 , 用 于 代 替 C 中 通 常 的 转换 操 作 。 因 此 , 被 做 为 隐 式 类 型
5、 转 换 使 用 。 比 如 :int i; float f = 166.7f; i = static_cast(f); 此 时 结 果 , i 的 值 为 166。2、 C+中 的 reinterpret_cast 主 要 是 将 数 据 从 一 种 类 型 的 转 换 为 另 一种 类 型 。 所 谓 “通 常 为 操 作 数 的 位 模 式 提 供 较 低 层 的 重 新 解 释 ”也 就 是 说将 数 据 以 二 进 制 存 在 形 式 的 重 新 解 释 。 比 如 :int i; char *p = “This is a example.“; i = reinterpret_cas
6、t(p); 此 时 结 果 , i 与 p 的 值 是 完 全 相 同 的 。 reinterpret_cast 的 作 用 是 说将 指 针 p 的 值 以 二 进 制 ( 位 模 式 ) 的 方 式 被 解 释 为 整 型 , 并 赋 给 i, /i 也 是 指 针 , 整 型 指 针 ; 一 个 明 显 的 现 象 是 在 转 换 前 后 没 有 数 位 损 失 。6、 用过 C 的人都知道每一个 C 的程序都会有一个 main(),但有时看别人写的程序发现主函数不是 int main(),而是 int _tmain(),而且头文件也不是而是,会困惑吧?一起来看看他们有什么关系吧首先,这
7、个_tmain()是为了支持 unicode 所使用的 main 一个别名而已,既然是别名,应该有宏定义过的,在哪里定义的呢?就在那个让你困惑的里,有这么两行#include #include 我们可以在头文件里找到_tmain 的宏定义 #define _tmain main所以,经过预编译以后, _tmain 就变成 main 了,这下明白了吧7、P urgeComm()函 数 -清 空 缓 冲 区 该 函 数 原 型 : BOOL PurgeComm(HANDLE hFile,DWORD dwFlags ) HANDLE hFile /串 口 句 柄 DWORD dwFlags / 需
8、要 完 成 的 操 作 参 数 dwFlags 指 定 要 完 成 的 操 作 , 可 以 是 下 列 值 的 组 合 : PURGE_TXABORT 终 止 所 有 正 在 进 行 的 字 符 输 出 操 作 ,完 成 一 个 正 处 于 等待 状 态 的 重 叠 i/o 操 作 ,他 将 产 生 一 个 事 件 ,指 明 完 成 了 写 操 作 PURGE_RXABORT 终 止 所 有 正 在 进 行 的 字 符 输 入 操 作 ,完 成 一 个 正 在 进 行中 的 重 叠 i/o 操 作 ,并 带 有 已 设 置 得 适 当 事 件 PURGE_TXCLEAR 这 个 命 令 指 导
9、 设 备 驱 动 程 序 清 除 输 出 缓 冲 区 , 经 常 与PURGE_TXABORT 命 令 标 志 一 起 使 用 PURGE_RXCLEAR 这 个 命 令 用 于 设 备 驱 动 程 序 清 除 输 入 缓 冲 区 , 经 常 与PURGE_RXABORT 命 令 标 志 一 起 使 用8、 函 数 名 : sleep 功 能 : 执 行 挂 起 一 段 时 间 用 法 : unsigned sleep(unsigned seconds); 在 VC 中 使 用 带 上 头 文 件 #include 在 gcc 编 译 器 中 , 使 用 的 头 文 件 因 gcc 版 本 的
10、 不 同 而 不 同 #include 注 意在 VC 中 Sleep 中 的 第 一 个 英 文 字 符 为 大 写 的 “S“ 在 标 准 C 中 是 sleep, 不 要 大 写 . 下 面 使 用 大 写 的 来 说 明 , 具 体 用什 么 看 你 用 什 么 编 译 器 . 简 单 的 说 VC 用 Sleep, 别 的 一 律 使 用 sleep. Sleep 函 数 的 一 般 形 式 : Sleep(unsigned long); 其 中 , Sleep()里 面 的 单 位 , 是 以 毫 秒 为 单 位 , 所 以 如 果 想 让 函 数 滞 留1 秒 的 话 , 应 该 是 Sleep(1000); 在 Linux 下 , sleep 中 的 “s”不 大 写 sleep()里 面 的 单 位 是 秒 , 而 不 是 毫 秒 。 在 内 核 中 , sleep 的 实 现 是 由pause 函 数 和 alarm 函 数 两 个 实 现 的 。 例#include #include int main() int a; a=1000; printf(“你 “); Sleep(a);/* VC 使 用 Sleep*/ printf(“好 “); /*输 出 “你 ”和 “好 ”之 间 会 间 隔 一 千 毫 秒 , 也 就 是 一秒 */ return 0;