编程语言
文章平均质量分 59
kevinwhite
不抛弃,不放弃
展开
-
嵌入式程序员应该知道的几个问题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法。这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是相当有趣的。 从被面试者的角度来讲,你能了解许多关于出题者或监考者的情况。这个测试只是出题者为显示其对ANSI标准细节的知识而不是技术技巧而设计吗?这是个愚蠢的问题吗?如要你答出某个字符的AS转载 2006-11-10 22:16:00 · 598 阅读 · 0 评论 -
C的优先级口诀
括号成员第一; //括号运算符[]() 成员运算符. ->全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算*、&乘除余三,加减四; //这个"余"是指取余运算即%移位五,关系六; //移位运算符:> ,关系:> = 等于(与)不等排第七; //即== 和!=位与异或和位或; //这几个都是位运算: 位与(&原创 2008-06-07 09:28:00 · 368 阅读 · 0 评论 -
如何在运行时确定对象类型(RTTI)
http://writeblog.donews.com/editposts.aspx RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运转载 2008-06-07 09:44:00 · 341 阅读 · 0 评论 -
虚函数参数的默认值
#include #include using namespace std;class Base{public: virtual void f(int); virtual void f(double); virtual void g(int i = 10);};void Base::f(int){ cout }void Base::f(double){ cout }void Bas转载 2008-06-05 23:58:00 · 646 阅读 · 0 评论 -
使用const
11.1 使用const 提高函数的健壮性看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动转载 2008-06-06 12:48:00 · 330 阅读 · 0 评论 -
覆盖和隐藏
http://www.zahui.com/html/9/21207.htmC++中派生类函数遮挡(Hide)基类中同名函数的问题是比较令人费解的,有必要详细说明一下。 看看下面一段代码: class Base { public: virtual void f(int x) {}; }; class Derived : public转载 2008-06-06 13:09:00 · 333 阅读 · 0 评论 -
C++中的explicit关键字
http://www.xjtublog.com/user3/6946/archives/2006/75166.shtml C++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢? 如果C++类转载 2008-06-06 12:44:00 · 233 阅读 · 0 评论 -
C++中的类型转换
C风格的转换C 风格(C-style)强制转型如下:(T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法:T(expression) // cast expression to be of type T 这两种形式之间没有本质上的不同,它纯粹就是一个把括号转载 2008-06-06 13:23:00 · 351 阅读 · 0 评论 -
iostream.h 与 iostream
http://www.devx.com/tips/Tip/14447写法一:#include 写法二:#include using namespace std;上面两种方式,都可以在VC6.0编译通过,但是两者具体有什么区别?还是没有区别,只是写法不一样而以,我查了很久,有很多描述,但是还是没有一个清晰的概念。下面这段文字是我觉得描述的比较清楚的: or ?Although t转载 2008-06-07 09:50:00 · 410 阅读 · 0 评论 -
宏定义
1.#假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing).#incldue #define PSQR(x) printf("the square of" #x "is %d./n",(x)*(x转载 2008-06-17 23:46:00 · 470 阅读 · 0 评论 -
使用static
http://www.yesky.com/20010828/194000.shtml 静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。 静态数据成员 在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安转载 2008-06-06 12:49:00 · 417 阅读 · 0 评论 -
c++辨析
static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。 static 的两大作用: 一、控制存储方式: static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。 1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,转载 2008-06-05 23:54:00 · 280 阅读 · 0 评论 -
OO三步曲
OO三步曲倪 硕原文出处:http://nishuo.35123.net/前言:面向对象程序设计(Object-Oriented Programming,以下简称OOP)是一种起源于六十年代的Simula语言,发展已经将近三十年的程序设计思想。其自身理论已经十分完善,并被多种面向对象程序设计语言(Object-Oriented Programming Language,以下简称OOPL)实现。转载 2007-02-26 15:30:00 · 534 阅读 · 0 评论 -
模板
一、模板的定义与使用模板定义以template开头,后跟一对尖括号,尖括号内是模板形参列表,以逗号隔开,不能为空。形参的类型是class或typename,它们是等价的。templatetypename T1, class T2>…….1、函数模板一个典型的函数模板template typename T> int compare (const T &v原创 2008-05-18 18:56:00 · 418 阅读 · 0 评论 -
泛型编程与设计新思维
泛型编程与设计新思维作者:徐景周 前言 永远记住,编写代码的宗旨在于简单明了,不要使用语言中的冷僻特性,耍小聪明,重要的是编写你理解的代码,理解你编写的代码,这样你可能会做的更好。--- Herb Sutter 1998年,国际C++标准正式通过,标准化对C++最重要的贡献是:对"强大的抽象概念"给于更有力的支持,以降低软件的复杂度,C++提供了二种功能强大的抽象方法:转载 2008-06-06 00:00:00 · 211 阅读 · 0 评论 -
遵循placement new的用法规范
标准的由一个特别的操作符new来定义,这个就是我们熟知的placement new。和其他普通的new不同的是,它在括号里多了另外一个参数。比如:Widget * p = new Widget; //ordinary new //普通的new pi = new (ptr) int;pi = new (ptr) int; //placement new 括号里的参数是一个指针,它指向一个内转载 2008-06-06 12:53:00 · 342 阅读 · 0 评论 -
谈C++继承中的重载、覆盖和隐藏
http://www.cfan.com.cn/school/pro/c/2006-08-17/1155771583d12886_1.shtml 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载(ove转载 2008-06-06 13:03:00 · 282 阅读 · 0 评论 -
转换函数
转换函数又称类型强制转换成员函数,它是类中的一个非静态成员函数。它的定义格式如下: class 类型说明符1> { public: operator 类型说明符2>(); … } 这个转换函数定义了由类型说明符1>到类型说明符2>之间的映射关系。可见,转换函数是用来将一种类型的数据转换成为另一种类型。下面通过一个例子说明转换函数的功能。转载 2008-06-06 13:11:00 · 466 阅读 · 0 评论 -
C预编译器
The C Preprocessor:http://gcc.gnu.org/onlinedocs/cpp/index.html#Top讲的非常详细,值得一看。原创 2008-06-07 09:26:00 · 477 阅读 · 0 评论 -
虚基类的用法
http://www.52wg.org/computer/chengxu/200511/computer_98579.html 在《多继承》中讲过的例子中,由类A,类B1和类B2以及类C组成了类继承的层次结构。在该结构中,类C的对象将包含两个类A的子对象。由于类A是派生类C两条继承路径上的一个公共基类,那么这个公共基类将在派生类的对象中产生多个基类子对象。如果要想使这个公共基类在派生类中转载 2008-06-07 09:46:00 · 770 阅读 · 0 评论 -
将数字类型转换为字符串
#include #include #include template std::string to_string(T t, std::ios_base & (*f)(std::ios_base&)){ std::ostringstream oss; oss return oss.str();}int main(){ // to_string()的第二个参数应为如下中的一原创 2008-06-07 09:48:00 · 744 阅读 · 0 评论 -
C++对象的内存结构
原文地址:http://blog.csdn.net/guogangj/archive/2008/01/11/2036785.aspx提示1:对“内存结构”表示有疑问或不解的,先参考:http://blog.csdn.net/guogangj/archive/2007/05/25/1625199.aspx,本文使用的表示方法和VC6的Memory视图一致,即:左上表示低位。 提示2:下文提到的“类大转载 2008-09-08 10:17:00 · 1180 阅读 · 1 评论