c++初学——03

volatile

volatile 关键字是一种类型修饰符,用它声明的变量表示可以背某些编译器未知的因素修改,用volatile告诉编译器不应对这些变量进行优化。

const 可以是volatile 指针可以是volatile;

assert()

断言,宣称的意思。他是宏而非函数。它的作用是如果条件返回错误,则终止程序运行。可以通过定义NDEBUG来关闭assert()

#define NDEBUG          // 加上这行,则 assert 不可用
#include <assert.h>

assert( p != NULL );    // assert 不可用

,但是需要在源代码的开头,#include<cassert>之前

extern

extern "C" 的作用是让 C++ 编译器将 extern "C" 声明的代码当作 C 语言代码处理,可以避免 C++ 因符号修饰导致代码不能和C语言库中的符号进行链接的问题。

C++ 中 struct 和 class

struct 更适合看成数据结构的实现体,class更适合看成对象的实现体

区别

最本质的区别是默认访问控制权限,struct默认是public,class默认是private

explicit

explicit修饰构造函数是,可以防止隐式转换和复制初始化,

explicit修饰转换函数时,可以防止隐式转换,但按语境转换除外

friend 友元类和友元函数

能访问私有成员

能破坏封装性

右元关系不可传递

右元关系的单行性

右元声明形式及数量不收限制

宏定义可以实现类似于函数的功能,但是它终归不是函数,而宏定义中括弧中的“参数”也不是真的参数,在宏展开的时候对 “参数” 进行的是一对一的替换。

面向对象三大特征 —— 封装、继承、多态

封装-把客观事实封装为抽象类,并且类可以把自己的数据和方法只让可信的类或对象操作。

继承-子类继承父类

多态-即多种形态,我们可以将多态定义为消息以多种形式显示的能力

多态分类:1重载多态,2子类型多态 ,3.参数多态,4.强制多态

静态多态(编译期/早绑定)

class A
{
public:
    void do(int a);
    void do(int a, int b);
};

动态多态(运行期期/晚绑定)

虚函数:用 virtual 修饰成员函数,使其成为虚函数

动态绑定:当使用基类的引用或指针调用一个虚函数时将发生动态绑定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值