随笔分类 - C++
摘要:在C#中,类的静态构造函数用于在使用类之前进行相关的初始化工作;比如,初始化静态成员或执行特定操作。CLR 在第一次创建该类对象或调用该类静态方法时自动调用静态构造函数。同时,CLR保证静态构造函数的线程安全性(准确地说是,只会调用一次,不存在多线程问题)。下面是MSDN对静态构造函数特点的描述:1.静态构造函数既没有访问修饰符,也没有参数2.在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类 3.无法直接调用静态构造函数4.在程序中,用户无法控制何时执行静态构造函数C++语言规范并未包含类似静态构造函数的东西,但在使用类之前做初始化工作的需求却是客观存在的。就满足需求本
阅读全文
摘要:1.指针函数的定义顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名 *函数名(函数参数表列);其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。“(函数参数表列)”中的括号为函数调用运算符,在调用语句中,即使函数不带参数,其参数表的一对括号也不能省略。其示例如下:int *pfun(int, int);由于“*”的优先级低于“()”的优先级,因而pfun首先和后面的“()”结合,也就意味着,p
阅读全文
摘要:联合(union)1.联合说明和联合变量定义联合也是一种新的数据类型,它是一种特殊形式的变量。联合说明和联合变量定义与结构十分相似。其形式为:union联合名{数据类型成员名;数据类型成员名;...}联合变量名;联合表示几个变量公用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。下例表示说明一个联合a_bc:uniona_bc{inti;charmm;};再用已说明的联合可定义联合变量。例如用上面说明的联合定义一个名为lgc的联合变量,可写成:uniona_bclgc;在联合变量lgc中,整型量i和字符mm公用同一内存位置。当一个联合被说明时,编译程序自动地产生一个变量,其长度为
阅读全文
摘要:(1)什么是内联函数?内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。(2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题。另外,前面我们讲到了宏,里面有这么一个例子:#define ABS(x) ((x)>0? (x):-(x))当++i出现时,宏就会歪曲我们的意思,换句话说就是:宏的定义很容易产生二意性。 我们可以看到宏有一些难以避免的问题,怎么解决呢?前面我们已经尽力替换了。下面我们用内联函数来解决这些问题。(3)为什么inline能取代宏?1、 inline 定义的类的内联函数,函数的代码被放入符号表中,在使用时直接进行替换
阅读全文
摘要:——Don't believe in magic !Understand what your program do ,how they do .引言昨晚一时兴起,我脑子就问自己下面的代码会输出什么,也不知道我脑子为什么有这个代码模型,只是模糊的有些印象:view sourceprint?01#include <stdio.h> 02#include <stdlib.h> 0304int main(int argc,char** argv)05{ 06inti=3,j;07j=(i++)+(i++)+(++i);08printf("i = %d, j =
阅读全文

浙公网安备 33010602011771号