现在位置: 首页 > c++
2012-08-08 14:17 工业·编程 ⁄ 共 245字 暂无评论
#define swap(x,y) {int temp=x;x=y;y=temp;} //换行写法 #define swap(x, y)\ int temp = x;\ x = y;\ y = temp; #define swap(x,y)  {x= x+y;y=x-y;x=x-y;} //换行写法 #define swap(x,y)\ x=x+y;\ y=x-y;\ x=x-y;\ 通过按位异或运算,可以实现两个值的交换,而不必使用临时变量 void swap(int &a,int &b) {     a=a^b;     b=a^b;  &...
阅读全文
2012-08-08 14:15 工业·编程 ⁄ 共 695字 暂无评论
第一:private, public, protected 访问标号的访问范围 private:只能由1.该类中的函数、2.其友元函数访问。 不能被任何其他访问,该类的对象也不能访问。 protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。 但不能被该类的对象访问。 public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。 注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的...
阅读全文
2012-08-08 13:57 工业·编程 ⁄ 共 693字 暂无评论
为了编译器区分前置和后置++,C++规定后缀形式有一个int类型参数 ,当函数被调用时,编译器传递一个0做为int参数的值给该函数。不这样规定,无法区分,因为都仅以自身对象为入参。     下面是一个简单的例子: class  CInt  {     private :       int  m_value;     // } ; CInt  &  CInt:: operator ++...
阅读全文
2012-08-08 13:55 工业·编程 ⁄ 共 1158字 暂无评论
    /* 今天看了c++发明人的the c++ programming language(special edition)关于临时对象的说明,虽然是一小节,但感觉c++的书籍,论内容还是这本最权威,里面很多东西都直接确定的表达了出来,权威、确定而令人信服。     临时对象的生存时限在这本书中只花了不长的篇章,但说的很清楚,临时对象的生存时限 限制在其出现的“完整”的表达式中,“完整”的表达式结束了,临时对象也就销毁了。例外是...
阅读全文
2012-08-08 13:25 工业·编程 ⁄ 共 1050字 暂无评论
一、typedef的用法     typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       INT; typedef    int       ARRAY[10]; typedef   (int*)   pINT;     typedef可以增强程序的可读性,以及...
阅读全文
2012-08-08 13:23 工业·编程 ⁄ 共 1058字 评论 1 条
    我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明:        有下面的两个类: class ClxBase { public:     ClxBase() {}     virtual ~ClxBase() { cout<<"  基类析构函数始终会被调用的"<<endl;}   &...
阅读全文
2012-08-08 13:18 工业·编程 ⁄ 共 3957字 暂无评论
1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用)    c文件中有一函数:               void Transfer(int a; char b);    cpp文件中必须用extern "C"声明该函数如下才可以实行调用:     ...
阅读全文
    如果这样定义对象:MyClass obj; 那么它的构造函数将会被执行,如果调用obj.MyMethod();也会执行正确。     可是如果带有括号:MyClass obj(); 那么它的构造函数不会被执行,调用obj.MyMethod();也会出现语法错误,请问这种语法是把obj定义成什么了? #include <iostream> class MyClass { public:     MyClass()     {   ...
阅读全文
为什么C程序中定义结构时经常要用到typedef呢?如: typedef struct _AM_WIN_MenuText {    int idc;    int message; } AM_WIN_MenuText; 为什么不直接把结构名定义为AM_WIN_MenuText然后使用就可以了。 取个类型的别名有什么作用呢? --------------------------------------------------------------- 那是因为不取别名的话,每次定义都要加struct --------------------...
阅读全文
2012-08-08 12:58 工业·编程 ⁄ 共 431字 暂无评论
break和continue的区别如下: 1. break可用于switch语句,表示跳出整个switch块,而continue则不能用于switch语句 2. 它们都可用于循环语句的循环体,所谓的区别也应该是它们对循环次数的影响不同。break用于立即退出当前循环,而continue仅跳过当次循环(本次循环体内不执行continue语句后的其它语句,但下次循环还会执行)。 举例说明 int i; int s = 0; for (int i = 1; i <= 10; i++) { if (i == 6) br...
阅读全文