我的C++学习笔记

小菜鸟记录下学习C++的笔记,应该为十分基础的内容~


编译时可以加 -D 来追加#define.

eg: cc -DDEBUG main.cpp  //相当于在main中添加了一条#define DEBUG

但是在大型项目中一般手动添加打印开关更方便


#ifdef __cplusplus

extern “c”

#endif                  //判断为C++程序则添加 extern “c”


常用的预定义:__FILE__ //正被编译的文件名

    __LINE__ //执行的行数


assert()是C语言标注库提供的一个通用预处理宏

#include <assert.h>

assert(0 != filename); //满足条件就继续执行,否则打印诊断信息,然后终止


注释不能嵌套使用/* /* */  */  


静态内存分配:程序执行之前就已经诊断所需的内存类型和大小,因此效率较高,缺点是不够灵活

动态内存分配:指针的使用??


内存泄露:一块动态内存的分配,我们不再拥有指向这块内存的指针,因此我们没有办法返还给程序供以后重新使用

基类析构函数为虚析构函数,会先detele派生类对象再detele基类对象,反之则只会删除基类对象,造成内存泄漏


数据自动转换:无符号和有符号做运算,都会作为无符号处理(signed converted to unsigned)

    小范围转大范围是无伤转换(eg:short 转换为int)


extern int i; //仅仅是对i的声明

int j; //不仅声明且是定义

extern int i = 0;  //声明并重新赋值


vector是c++标准库定义的数据结构(同string),是顺序容器,存储空间自动分配,动态扩大,缩小

vector添加元素用push_back,而不是像数组那样通过数组下标添加,但是可以通过下标读取元素


int &refs[10] = ...; //error 没有引用数组

int (&refs)[10] = arr; //arr[10]的引用


指针赋值给指针类型要一致,指针与被指对象类型要一致

成员是四种访问方式:对象.成员 引用.成员 对象指针->成员 类名::成员

常成员不能修改成员变量和调用成员函数

静态成员变量在类外初始化,该类所有对象共享:类型   类名::静态成员变量 = 初值;

抽象类不能创建对象,派生类若没有实现基类的纯虚函数,那也是一个抽象类


void fun() const{} //类成员函数后面加const,表面这个函数不可以对类对象的数据成员作任何改变(非static)


C++的class在编译第一步是找到所以声明,后面才是实现。所以实现中可以调用声明在后面(排版)的成员,与位置无关




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值