- 博客(13)
- 收藏
- 关注
原创 C++ 关键字 inline
1. 内联函数求两个整数的最大值:int max(int a, int b){ return a > b ? a : b;}
2014-01-24 10:14:58
3796
1
原创 C++ 关键字 explicit
C++用 explicit 关键字来修饰类的构造函数,表明函数是显式的,在介绍显式构造函数之前,我们下来看一下隐式构造函数:#include using namespace std;class MyString{public: MyString(int n){ cout<<"constructor form int"<<endl; } MyString(char* p){ co
2014-01-17 16:41:03
1037
转载 C++ 关键字 extern
1. 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件:A.cppint i;int main(){ return 0;}
2014-01-17 10:25:06
671
原创 C++ 关键字 static
1. C语言中的 static在C语言中,从变量的作用域(空间)角度来分,可以分为全局变量和局部变量;从变量值存在的时间(生存期)来分,有动态存储和静态存储两种类型,静态存储时程序整个运行时间都存在,而动态存储则是在调用函数时临时分配单元。我们来看在 static 关键字修饰之前,全局变量和局部变量的作用域和生存期是怎样的?extern.cppint g_v
2014-01-17 10:23:57
884
原创 C++ 关键字 const
1. 概念C++提供了用户定义常量的概念,const就是为了直接表达“不变的值”这样一个概念。这种东西在一些环境中非常有用,例如,许多对象在初始化之后就不再改变自己的值了;与直接将字面值常量散布在代码中相比,采用符号常量写出的代码更容易维护;指针常常是边读边写,而不是边写边移动;许多函数参数是只读不写的。——摘自《The C++ Programming Language》
2014-01-17 10:14:08
694
原创 Google C++编码规范
背景Google的开源项目大多使用C++开发。每一个C++程序员也都知道,C++具有很多强大的语言特性,但这种强大不可避免的导致它的复杂,这种复杂会使得代码更易于出现bug、难于阅读和维护。本指南的目的是通过详细阐述在C++编码时要怎样写、不要怎样写来规避其复杂性。这些规则可在允许代码有效使用C++语言特性的同时使其易于管理。风格,也被视为可读性,主要指称管理C++代码的习惯。使用术语
2014-01-17 09:02:24
2591
原创 C++经典面试题(6)
6. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个#define min(a,b)((a)注意:在调用时一定要注意这个宏定义的副作用,如下调用: ((++*p)p指针就自加了两次,违背了 MIN的本意。
2014-01-16 14:09:32
624
原创 C++经典面试题(5)
5. C 中的 malloc 和 C++ 中的 new 有什么区别 malloc和 new有以下不同:① new、delete 是操作符,可以重载,只能在 C++中使用。② malloc、free是函数,可以覆盖,C、C++中都可以使用。③ new 可以调用对象的构造函数,对应的 delete 调用相应的析构函数。④ malloc仅仅分配内存,free 仅仅回收
2014-01-16 14:07:27
564
原创 C++经典面试题(4)
4. C 语言的关键字 static 和 C++ 的关键字 static 有什么区别在C 中static 用来修饰局部静态变量和外部静态变量、函数。而 C++中除了上述功能外,还用来定义类的成员变量和函数。即静态成员和静态成员函数。 注意:编程时 static的记忆性,和全局性的特点可以让在不同时期调用的函数进行通信,传递信息,而 C++的静态成员则可以在多个对象实例
2014-01-16 14:02:06
580
原创 C++经典面试题(3)
3. sizeof和strlen的区别sizeof和 strlen 有以下区别:①sizeof是一个操作符,strlen是库函数。②sizeof的参数可以是数据的类型,也可以是变量,而 strlen只能以结尾为‘\0‘的字符串作参数。③编译器在编译时就计算出了sizeof 的结果。而 strlen 函数必须在运行时才能计算出来。并且 sizeof计算的是数据类型占内
2014-01-13 09:04:17
476
原创 C++经典面试题(2)
2. 写出 bool 、int、 float、指针变量与“零值”比较的 if 语句 bool型数据: if( flag ) { A; } else { B;} int型数据: if( 0 != flag ) { A; } else { B;} 指针型数: if( NULL == flag ) { A;
2014-01-10 13:40:36
626
原创 C++经典面试题(1)
1. 变量的定义和声明有什么区别? ①为变量分配地址和存储空间的称为定义,不分配地址的称为声明。②一个变量可以在多个地方声明,但是只能在一个地方定义。 int a;extern int a; 加入extern修饰的是变量的声明,说明此变量在文件以外或在文件后面部分定义。另外很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间,如外部变量。
2014-01-10 13:23:37
705
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人