易截截图软件、单文件、免安装、纯绿色、仅160KB

【C/C++】C++必须知道的基础问题

一、概述
1、C++虽然是从C语言中发展的,但其中有许多要点,是C语言中所没有的,包括引用,内联函数等,在此做一个介绍。
2、对于C/C++中的基础是必须要详细了解的,能够深刻理解其含义以及其来源,是一个人内功深刻的表现。如果一些基础的问题,
都说不上来,又如何给人以信心呢。
二、常见的问题
1、为什么要使用内联函数,其作用是什么?
a:inline 关键字用来定义一个类的内联函数,引入它的主要原因是用它替代C中表达式形式的宏定义。
宏的问题:
使用预处理器实现,没有了参数压栈,代码生成 等一系列的操作
不能进行参数有效性的检测,也就不能享受C++编译器严格类型检查的好处
如果一个操作或者说一个表达式涉及到类的保护成员或私有成员,你就不可能使用这种宏定义来实现
使用内联函数可以完全解决宏使用的几个问题。
2、引用和指针的区别?
a:C++编译器通常采用指针的方式实现,但引用其实不是指针,其行为和指针并不相同。
主要有三大区别:
不存在空引用
所有引用都要初始化
一个引用永远指向用来对它初始化的那个对象。
3、不能重载的运算符
a:  .   ?:   siezof     ::   .*
4、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
a:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然
也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序,当一个
源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
     而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态
全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。从以上分析
可以看出,把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了
它的作用域, 限制了它的使用范围。
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该
在当前源


相关文档:

linux 常用c函数


opendir(打开目录)
相关函数
open,readdir,closedir,rewinddir,seekdir,telldir,scandir
表头文件
#include<sys/types.h>
#include<dirent.h>
定义函数
DIR * opendir(const char * name);
函数说明
opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和open()类似,接下 ......

实例讲解如何使用C++操作MySQL数据库类

 
  用C++操作MySQL数据库类:
  注释:这几个类对处理不是很大数据量的操作是很理想的, 但不适宜特大型的数据的查询,因为源码中将查询到的数据直接放入了内存。
  /*
  * project:
  * 通用模块 ( 用 c++ 处理 mysql 数据库类,像ADO )
  *
  * description:
  *
  * 通过DataBase,Reco ......

linux C使用管道通信(一)

 Linux中的进程通信
1.管道
   函数原型:int pipe(int filedes[2]);
   函数返回值: 正确返回0;错误返回-1
   其中的文件描述符filedes[0]是用来读取数据的,filedes[1]是用来写数据的。
例子1:
#include<stdio.h>
#include<stdlib.h>
#include<u ......

清理C盘大攻略——立即见效


1.打开“我的电脑”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前打勾-“确定” 
2.删除以下文件夹中的内容: 
x:\\Documents and Settings\\用户名\\Cookies\\下的所有文件(保留index文件) 
x:\\Documents and S ......

C/C++指针

最近工作不紧,抽空看了下C、C++的指针,发现了一些平时没注意到的指针用法和问题。
1、指针引用
void func1(MYCLASS* &pBuildingElement);
乍一看,怪怪的,看了下解释,细想一下和指针的指针类似:
void func1(MYCLASS** pBuildingElement);
看下面的例子:
...
MyClass* p = new MyClass;
func1(p);
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号