C++学习笔记---基本内置类型

来源:互联网 发布:Mac电脑老弹广告 编辑:程序博客网 时间:2024/05/22 01:41
1、引用:是一种复合类型(用其它类型定义的类型),引用只是对象的另一个名字;引用是一种复合类型,通过在变量名前添加“&”符号来定义。
int ival = 1025;
int &refVal = ival;    // ok refVal refers to ival

const限定符把一个对象转换成一个常量;
如果函数具有普通的非const引用形参,,则显然不能通过const对象进行调用。毕竟,此时函数可以修改传递进来的对象,这样就违背了实参的const特性


typedef限定符是用来定义类型的同义词;

extern 可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。就是声明一个变量;当extern不与"C"在一起修饰变量或函数时,如在头文件中: extern int g_Int; 它的作用就是声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块活其他模块中使用,记住它是一个声明不是定义!


2、关键字class和struct的区别:
如果使用class关键字来定义类,那么定义在第一个访问标号前的任何成员都隐式指定为private;如果使用struct关键字,那么这些成员都是public。

3、头文件中包含的内容:
类定义、extern变量的声明和函数的声明,注意不应该含有定义这一规则,但有三个例外。头文件可以定义类、值在编译时就已知道的const对象和inline函数。

可以用下面这些设施来预防多次包含同一头文件:
#define,宏定义,指示接受一个名字并定义该名字为预处理器变量,只做字符串替换,替换后再进行编译。
#define paster(n)  printf("token"#n"=%d\n",token##n),使用用paster(n),将会被替换成后面的字符串;

#ifndef指示检测指定的预处理器变量是否未定义。如果预处理器变量未定义,那么在其后的所有指示都被处理,直到出现#endif。

所谓的静态类型语言:
变量和函数在使用前必须先声明;

4、枚举类型:
enum weekday{ sun,mou,tue,wed,thu,fri,sat}等价于enum weekday{ sun=0,mou=1,tue=2,wed=3,thu=4,fri=5,sat=6}
枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值

5、指针:
(1)指针和const限定符:
C++语言强制要求指向const对象的指针也必须具有const特性;
如:const double *cptr;
const 限定符限定了cptr指针所指向的对象的类型,而并非cptr本身,也就是说cptr本身并不是const。
不能使用void*指针保存const对象的地址,必须使用const void*类型的指针保存const对象的地址;
允许把非const对象的地址赋值给指向const对象的指针;

6、
(1)对于C风格的字符串比如char*,char str[],转换为 string,char * 和char str[]类型可以直接转换为string 类型;
(2)对于string 转换为char* ,string提供一个方法可以直接返回字符串的首指针地址即:string.c_str();

7、C++中,全局域只能声明,初始化变量,不能对变量进行赋值,运算,调用函数等操作 
0 0
原创粉丝点击