c++短期班 day01 - day03

  1. c++中使用
#if 0
xxx
xxx
xxx
#endif

代表将中间内容注释

  1. 命名空间是可以任意扩展的

  2. 在C++中,使用预处理器指令 #ifndef、#define 和 #endif 的目的通常是为了防止头文件的重复包含。这通常是在头文件的顶部完成的,而不是在某个特定的函数(如 add())内部。

例如,你可能有一个头文件 add.h,其中包含一些函数声明和宏定义:

cpp
// add.h  
#ifndef __ADD_H__  
#define __ADD_H__  
  
// 函数声明或其他代码...  
  
#endif // __ADD_H__

在这个例子中,ADD_H 宏定义用于确保 add.h 只被包含一次。如果 add.h 被多次包含,由于 ADD_H 已经被定义,因此头文件的内容不会被重复包含。

至于函数 add(),它可能是在其他源文件中定义的,而这个头文件只是包含了它的声明。函数 add() 本身不会定义这个宏。这个宏是用来管理头文件的包含的。

  1. 当你在代码中包含一个自定义的头文件时,编译器会在几个特定的目录中查找该头文件。这些目录包括:
    当前目录:编译器首先在当前目录(即源代码所在的目录)中查找头文件。
    编译器特定的系统头文件目录:不同的编译器可能有不同的系统头文件目录。例如,对于 GCC 和 G++,这些目录通常是 /usr/local/include、/usr/include 等。
    编译器的标准库头文件目录:编译器通常还会在其安装目录下的标准库头文件目录中查找头文件。
    链接器搜索的库文件目录:在链接阶段,链接器会在其搜索的库文件目录中查找所需的头文件。
    如果编译器在以上目录中找不到所需的头文件,你通常需要使用 -I 选项指定额外的头文件搜索路径。例如:
    bash
    g++ main.cpp -I/path/to/headers -o myprogram
    其中 /path/to/headers 是你的自定义头文件的路径。

  2. c++转换 使用static_cast<目的类型>(原变量) ,该函数返回目的类型变量

  3. vim中命令模式光标移动到函数名,使用shift+k可以调用man手册的内容

  4. c++中对struct的功能进行了提升,不仅可以定义变量,也可以定义函数,默认情况下,class的访问权限是私有的,但是struct的访问权限是public

  5. 头文件的顺序:1,自定义。2,c的头文件 。3,c++的头文件

day03

  1. 类的函数的实现可以在类外,需要添加(类名::) 类似上图Computer::
    在这里插入图片描述
    如图还有vim的快捷键使用

  2. 头文件形式,需要加#在这里插入图片描述
    在这里插入图片描述

  3. 类的构造函数(类的初始化),其中_ix(0) 等价于 _ix =0;
    在这里插入图片描述

  4. 在构造函数中,数据成员的初始化顺序应该与其声明顺序相同

  5. 析构函数:没有返回类型,参数列表中不能有参数,对象在被销毁的时候会自动调用

class Point{

	~Point(){
	
}
}

  1. 构造函数调用的时候会创建对象,创建对象的时候也一定会调用构造函数!

  2. 下面给出一个分为3个文件的例子
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 拷贝构造函数:当用一个已经存在的对象去初始化一个刚刚创建的对象,此时就会调用拷贝构造函数,注意,如果要自己定义要用引用型。
    当形参与实参都是对象时候,会自动调用拷贝构造函数;
    返回值是对象时候,也会调用。但是返回的是临时对象/匿名对象,特点:对象的创建和销毁都在本行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
19. 能取地址的就是左值,
不能取地址的是右值,包括匿名对象,匿名变量、常量
加上const后是可以将

20.关于拷贝构造函数的参数问题
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赤狐先生

如果有一点点帮助,可以给点支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值