#未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器...

《C++快速入门》学习笔记

进度:P42

#未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器..._第1张图片 #未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器..._第2张图片

1、 在上例中,不需要delete techCompany,因为compay和techCompany指向的是同一块内存地址,上面的内容已经被释放过了,再次delete会出错

2、 表中的操作符能够进行必要的类型检查

1、 在上例的基础上进行修改,两个尖括号之间写的是想要的指针类型

Com* Com = dynamic_cast(com);

1、 在动态分配内存的时候对同一个指针(在释放之前)分配多次内存

2、 指针在函数内分配内存,但在出函数之前没有释放内存,导致指针在出函数后结束了生命周期,而这个指针指向的内存没有被释放

动态分配的内存块没有作用域,但用来保存其地址的指针变量是受作用域影响的

1、 在#include指令当中,系统头文件的文件名要放在尖括号内,而自定义的要放在双引号里

2、 在头文件里应该使用更多的注释,包括创建日期,文件用途,创建者姓名,最后一次修改日期,有什么限制和前提条件等

3、 利用C++预处理器可以让头文件只在这个类还没有被声明过的情况下彩声明它

1、 C++预处理器可以用作注释的作用,比起/**/来说更好,因为后者不能进行嵌套

例如:

#if 0

#endif

因为if后面的0是假,则if语句永远不会为真,那么里面的所有内容都永远不会被执行,就起到了注释的作用

2、 在头文件的开头结尾可以使用以下的形式来实现不重复声明的目标

#ifndef HEAD_FILE_NAME_H

#define HEAD_FILE_NAME_H

#endif

3、作为一种固定模式,这里使用的常量名通常与相应的文件名保持一致,把句点替换为下划线,例如rational.h对应RATIONAL_H

#未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器..._第3张图片

1、“/”在unix/linux系统和网址URL中分隔路径

2、“\”在windows系统中分隔路径

3、“//”一般用于网络协议中,比如http://

4、“\\”一般用于局域网中计算机之间的互访

5、由于“\”是转义字符的起始字符,所以路径中的“\”通常要写作“\\”

6、实际上在vs2019当中这四个都可以作为路径的分隔符,甚至不管是多少个斜杠都能跑,就很强?一般推荐写“/”吧?

#未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器..._第4张图片 #未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器..._第5张图片

1、 创建命名空间:namespace Namespace{ },花括号将cpp和h当中的内容括起来即可

2、 使用命名空间时的using指令的出现位置决定着从命名空间提取出来的东西能在哪个作用域内使用

3、 using指令可以单独只把需要的特定命名从命名空间提取到全局作用域,例如using std::cout

写在后面:

咕咕了一段时间了(doge)但是不知不觉在码推送的过程中坚持把小甲鱼快看完了我是真没想到(挠头)

vs2019能编译通过/和\和//和\\甚至还有我是真的没想到,人都给吓傻了.jpg

就先这样?

对了,眠哥到底啥时候更新史努比?(doge)

#未能找到类型或命名空间名称_C++快速入门学习笔记8|强制类型转化/命名空间/C++预处理器..._第6张图片

IT双侠的咕咕咕日常

内容:咸哥

排版:咸哥

特别鸣谢:小甲鱼

你可能感兴趣的:(#未能找到类型或命名空间名称)