【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),内部函数应该
在当前源
相关文档:
static
C++中的static
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。
一、面向过程设计中的static
1、静态全局变量
在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变 ......
Linux中的进程通信
1.管道
函数原型:int pipe(int filedes[2]);
函数返回值: 正确返回0;错误返回-1
其中的文件描述符filedes[0]是用来读取数据的,filedes[1]是用来写数据的。
例子1:
#include<stdio.h>
#include<stdlib.h>
#include<u ......
1.打开“我的电脑”-“工具”-“文件夹选项”-“查看”-在“显示所有文件和文件夹”选项前打勾-“确定”
2.删除以下文件夹中的内容:
x:\\Documents and Settings\\用户名\\Cookies\\下的所有文件(保留index文件)
x:\\Documents and S ......
菜单和加速键密切地联系在一起。这两种资源类型联手协作,让用户能更容易地完成任务。大家都知道菜单是什么——它是分层命令结构的物理表示。加速键提供该结构的快捷方式,以提高用户操作的速度。例如,要创建一个新文件,通常用File | New(文件|新建)命令或CTRL-N加速键,两种方法可以产生相同的结果。
Visua ......
2010-03-16
1,字符串常量:就是在源程序中被双引号括起来的一串字符,例如“hello”。在内存中存6个字节,包括最后一个NUL字节(即‘\0’).
2,NUL是ASCii字符集中‘\0’字符的名字,它的字节模式为全0. NULL指一个其值为0的指针,他们都是整型值,且值都相同,所以他们可以互换使用,但 ......