自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

转载 VC 如何使程序运行后自己删除自己

VC 如何使程序运行后自己删除自己有时候,我们需要创建一个运行后能够自己删除自己的可执行程序即自删除程序。很明显如果一个进程通过直接调用DeleteFile()来删除自己是不可能的。必须另想办法,经过本人在网上参考很多资料后实际测试并集众家之所长,发现有二种方法效果比较好。现在将其封装成函数,这样使用将更加容易: 方法1,调用BAT文件。//向指定文件写入文本。如果文件不存在就

2013-02-20 16:01:36 658 1

转载 C,C++宏中#和##

文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x) #x之后,下面二条语句就等价。       char *pChar = "hello

2013-02-20 15:25:07 598

转载 C++对参数直接赋值

在C++中,可以为参数指定默认值。在函数调用时没有指定与形参相对应的实参时, 就自动使用默认参数。默认参数的语法与使用:(1)在函数声明或定义时,直接对参数赋值。这就是默认参数;(2)在函数调用时,省略部分或全部参数。这时可以用默认参数来代替。注意:(1)默认参数只可在函数声明中设定一次。只有在没有函数声明时,才可以在函数定义中设定。(#add ,此句意为存在函数声明和

2013-02-18 10:21:35 6980 1

转载 free和delete

free与 delete1. delete用于释放 new 分配的空间,free 有用释放 malloc 分配的空间2. delete []用于释放 new [] 分配的空间3. delete释放空间的时候会调用 相应对象的析构函数     顺便说一下new在分配空间的时候同时会调用对象的构造函数,对对象进行初始化,使用malloc则只是分配内存4.调用

2012-12-17 11:06:41 791

原创 SVN使用教程

还是SVN官网的教程最实用,而且介绍最全,这才是最牛的:http://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/

2012-12-12 19:16:37 388

原创 const用法

const用法: 一、总述修饰符const用来限定变量只能被读取,不能被修改。当定义一个常量(const)时,必须赋一个值给它。    C++中的const默认为内部连接,也就是说,const仅在const被定义过的文件里才是可见的,而在连接时不能被其他编译单元看到。因此,可以把const的定义放在一个头文件中,让多个cpp文件包含该头文件,而不会出现重复定义。也可以在一个文件中定

2012-12-09 14:45:16 567

原创 在头.h写函数实现体和在cpp中写实现体的区别

在头.h写函数实现体和在cpp中写实现体的区别:其实区别就是一句话:在.h中写成员函数的实现体就则该函数就是内联函数,在.cpp中写实现体就是普通成员函数。 ****声明内联函数看上去和普通函数非常相似:      void f(int i, char c);               当你定义一个内联函数时,在函数定义前加上 inline 关键字,并且将

2012-12-09 14:42:24 3631

原创 成员变量的初始化和赋值

成员变量的初始化和赋值:成员变量的赋值有如下两种情况:第一种成员变量赋值:class TesA{public:TesA(){a = 1; b = 2;}// 第一种情况赋值void OutPut();private:int a ;int b; }; void TesA::OutPut(){cout cout }第二种成员变

2012-12-09 14:40:00 1296

转载 函数指针和指针函数

函数指针和指针函数  [函数指针]函数类型 (*指针变量名)(形参列表);“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:int (*f)(int x);double (*ptr)(double x);在定义函数指针时请注意:    函数指针和它指向的函

2012-12-01 12:31:03 436

原创 对于左操作数必须为左值的问题

C++中只有返回引用或指针时,返回值才能为左值,这时才能对返回值进行操作。                         而返回值则不能为左值,也不能对返回值进行操作。例如:1.返回一个值。class tesA{public:tesA(){a=2;}int geta(){return a;}private:int a;};int main(

2012-11-15 13:20:36 6483

原创 sizeof()和.length()

有些事摘自网上的资料: 1.sizeof可以计算一个类型乃至一个结构的大小空间length只是针对字符串而言的而且标准c里没有length这个函数只有在C++中的string类中才有length这个函数2.关于sizeof()和string的c_str()和length()函数:sizeof()是求某种系统自带类型数据 或用户自定义类的大小的函数比如:int

2012-11-11 22:37:35 3573

原创 取数组首地址的问题:

数组第一个元素的地址和整个数组的首地址到底有什么区别呢?例如:1.int main(int argc, char **argv){  int  a[2]  = {7,8 };  cout cout cout cout system("pause");return 0;}从输出结果可以看出,a代表数组第一个元素的地址,&a代表整个数

2012-11-11 21:43:12 784

原创 数组和数组名的关系

1.以下代码是正确的:int main(int argc, char **argv){  int  a[2] = {7,8}; cout int * c  ;c =  a;//cout system("pause");return 0;}2.以下代码是错误的:会报错。int main(int argc, char **argv){   i

2012-11-11 21:42:26 707

原创 memset()函数用法

memset()用于对整型数组或者结构体进行清0或者字符型数组赋初值或某个特定值。而不可以给整型或者double类型数组赋值:例如1.对整型数组全体赋某一个值。结果:错误。  如果是对整型数组清0即memset(a,0,5*sizeof(int));改成那么是正确的。int main(int argc, char **argv){ int a[5] ={1,2,3,4,5}

2012-11-11 13:27:14 893

原创 C++参数传递的四种方法

目前我所了解的主要有四种参数传递:1.值传递 2.采用引用 3.采用指针 4.采用指针型引用 1.值传递 :不能改变外部目标 a的值class shu{ public: void Out( int tempa ){  cout tempa ++;cout }}; int main(int argc, char **argv)

2012-11-11 01:25:52 704

原创 指针++ 的写法

今天在看基础是发现如下代码执行*tempa ++后竟然会出现随机数: class shu{ public: void Out( int * tempa ){  cout *tempa ++;cout }}; int main(int argc, char **argv){int a  = 1;int *b = &a;  s

2012-11-11 01:24:37 650

原创 C++申请变量什么时候崩溃什么时候不崩溃

大家都知道在c++中申请变量并初始化是一个有效保证代码正确的好习惯。但是今天发现一个有趣的地方:我在申请b后直接输出b,看如下代码: int main(int argc, char **argv){int b ; cout int *a = 0;  a= &b ;    system("pause");return 0;}这个时候系统会崩

2012-11-11 01:23:18 468

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除