C++基础语法

1 开始学习 C++

1.1 C++ 的头文件

传统的 C 头文件。

C++ 头文件

hpp 文件件

1.2 命名空间

C++ 引入了新的概念,命名空间可以有效避免大型项目中的各种名称冲突

class 关键字

class 是 C++ 的核心,是面向对象编程的核心内容

1.3 更严格的类型转化

在 C++ ,不同类型的指针是不能直接赋值的,必须强转

1.4 new 和 delete

new 和 delete 是 C++ 内建的操作符,不需要有任何头文件,用 new 分配的内存必须用 delete 释放,不要用 free 。

new 创建数组的方法 new[];

1.5 内联函数

inline 关键字的意思是,内联函数不作为函数调用,而是直接把内联函数的代码嵌入到调用的语句中

内联函数适合函数代码很少,并且频繁的大量调用。

1.6 引用

引用就是一个变量的别名,而不是地址

函数的缺省参数

C++ 允许函数在定义的时候,提供缺省参数,如果调用函数的时候没有提供形参,那么形参的值就是缺省值

引用做为函数的参数,没有出栈,入栈操作,所以效率更高

如果要使引用参数的值不能在函数内部被修改,那么就定义为常量引用 const &

这里写图片描述

1.7 函数的重载

函数的名称是一样的,但参数不同可以重载

函数参数相同,但返回值不同,不可以重载

2 类和对象

2.1 C++ 类成员 的保护

如果类函数返回的是成员变量的指针,为了避免在类外部成员变量被修改,所以函数就要返回常量指针

如果一个类成员变量和一个全局变量重名 , 那么在类成员函数当中默认访问的是类的成员变量 .

在类的内部访问全局标识 , 关键字 ::

2.2 C++ 类的本质

类其实就是结构的数据成员加可执行代码,统一提供封装,继承,多态。

在类内部,没有权限限定符,默认是 private

在结构内部,没有权限限定符,默认是 public

2.3 类的作用域

类成成员变量作用域局限于类内部,类的外部是不可见。

2.4 类的构造和析构函数

构造函数名称和类的名称一致,而且没有返回值

一个类实例化为一个对象的时候,自动调用。

一个对象在销毁的时候会自动调用析构函数。

2.5 构造函数的初始化成员列表

初始化成员列表只能在构造函数使用

const 成员必须用初始化成员列表赋值

引用数据成员必须用初始化成员列表赋值

2.5.1 原则:

由于析构函数只有一个,所以在不同的构造函数里面给函数的成员指针分配内存的时候,一定要统一 new 或者 new[]

2.6 拷贝构造函数

2.6.1 浅拷贝

两个对象之间成员变量简单的赋值。
这里写图片描述

2.6.2 深拷贝

不同的对象指针成员指向不同的内存地址,拷贝构造的时候不是简单的指针赋值,而是将内存拷贝过来。

2.6.3 原则:

如果类成员有指针,那么需要自己实现拷贝构造函数,不然存在浅拷贝的风险。

2.7 常量类成员,常量对象。

类成员后面跟关键字 const 意思是告诉编译器,这个函数内部不会对类成员变量做任何修改。

函数的参数如果是一个类,那么就用类的引用。如果不想参数被调用函数内部修改,那么就采用 const &

2.8 explicit

告诉 C++ 编译器,要明确的调用这个构造函数,而不要自作聪明的认为 = 操作符是要调用构造的。

2.9 this 指针

this 就是指向自己实例的指针

2.10 类的 static 成员变量

static 变量是放到静态内存区的,程序加载就存在,一直到程序退出才清理。

类的 static 成员和类的对象没有直接关系,类的静态成员是放到静态内存区的,程序开始执行就存在,一直到程序结束才清理。

类的静态成员变量不论类的实例有多少,但成员变量只有一份。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值