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