C++基础知识点(一)

第一章

作用域限定符

限定符::成员名

限定符一般就是类名,也可能是命名空间,用于类成员的访问及定义,用于说明某一成员属于哪一个类,属于哪一个命名空间。若限定符省略,则说明后面的成员是一个全局变量

const常量

1定义时必须初始化

2为右结合,但若是简单数据类型,const也可以写在数据类型的左侧,如

const int i=5;

int const i=5;

 

const还可修饰函数的形参,表示相应的实际参数在该函数内不能被修改

 

常引用

引用声明时必须初始化,即指定它引用的是哪一个变量

系统不会为变量的引用另外分配存储空间,引用和被引用的变量共享同一内存单元

 

常引用语法

const 数据类型 &引用名

如果在声明引用时用const修饰,那么该引用就是一个常引用。意味着所引用的对象不能更改

 

首先进一步理解引用: int &a=b 相当于 int *const a=b。即引用是一个指针常量(又称常指针,即一个常量,其类型是指针,表示这个指针只能指向这个地址,不能改变指向其他地址)。

每当编译器遇到引用变量a,就会自动执行 * 操作。

而常引用:const int &a=b就相当于 const int * const a=b。不仅仅是a这个地址不可修改,而且其指向的内存空间也不可修改。

常引用的作用有两个,一是让变量所指向的内存空间只读,二是能够指向常量

 

int * const p1=&a;//这里必须赋值,因为是常指针

p1不能指向别处

 

//  const int *p2;

int const *p2;//这两种定义方式都可以

不能通过p2修改其所指向地方的值

 

const int * const p3=&a;//这里必须直接赋值

包括以上两种情况,p3既不能指向别处,也不能通过p3修改被指向地方的值

 

int &c = a;//引用c和a等价,可以互相改变(相当于常指针,即只能指向a的指针)

 

int & const d = a;//个人感觉这里const没啥用啊!等价于int &d=a

 

const int & e = a;//等价于int const &e=a。不能通过e修改a的值

 

const int & const f=a;//f不能赋值,但是a却可以赋值。效果和上一个相等

 

const int * &p12 = p10;//p12是一个指针引用,是p10的引用,所以p12也是一个指针,和p10指向同一个地方,const在最前面,所以不能通过p12改变所指地方的值。但是p12还能指向其他地方。

 

int *const &p16 = p14;//引用,p16p14等价,这里p16只能和p14一样指向a,不能指向其他地方了。但是可以改变a的值。

常对象

如果希望一个对象自创建时起就不能被修改状态,可以用const修饰这个对象,将它声明为常对象。

类名 const 对象名(实参表)

const 类名 对象名(实参表)

常对象在生命的同时必须初始化,并从此不能改变其状态。

This指针不能指向常对象,所以常对象不能调用成员函数。通常是将常对象的引用作为参数传递给函数。

常对象只能调用类的常成员函数和静态成员函数。

 

常成员函数

返回类型 函数名(参数表) const

常对象不能调用普通成员函数,能调用常成员函数

常成员函数只能访问对象的数据成员,而不能修改他们的值,也不能在函数体中调用非const修饰的成员函数。

 

当两个成员函数原型相同,只区别在有无const修饰的时候,系统可以视之为重载函数,并根据调用的对象来匹配对应的函数:常对象调用常成员函数,普通对象调用普通成员函数。

 

常数据成员

构造函数对常数据成员初始化必须使用初始化列表。

对象创建之后,任何函数不能修改常数据成员的值。

如果类有多个重载构造函数,每个构造函数都需要初始化常数据成员。

 

 

内联函数inline

 

带默认参数的函数

Void fun(int a, int b,int c=199)

默认参数的形参位置必须放在最右边

 

 

new和delete

new的返回值:若是非数组类型,返回指向该类型对象的指针;若是数组类型,返回数组的首地址

new不一定总会成功,不成功返回NULL

new为数组申请内存时无法提供初值

delete操作符格式:

delete 指针变量

delete []指针变量

 

预处理命令

以#号引导

预处理命令包括宏定义命令,文件包含命令,条件编译命令

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值