本文主要是介绍努力学习c++的一天(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 关于.h和.cpp的理解
以我现在的理解,.h和.cpp其实就类似于一本书的目录和内容,那么也就是说这就是一本书(C++中称为package),所以他俩的名字是一样的,那么分工具体是怎样的,就是.h是概括,目的是为了方便我们快速查找想要的内容,所以在.h文件中主要是方法和变量的声明;.cpp是具体的内容,所以是具体方法的定义和实现;其实两个的存在并不是必要的(C语言就没有也可以实现功能),但是有了这两个可以一方面很方便编写很多代码时的快速查找,另一方面便于封装,直接#include<.h>就可以;
2. .cpp和.hpp的区别又是什么呢
.hpp其实是将.h和.cpp混合在一起作为.h被调用,一般适用于公共的开源库;
3. 什么情况下需要加using namespace?
现在常见的 就是 using namespace std; cv; openni.... namespace就是命名空间的意思,那么std就是包含了c++中常用的标识符的一个空间,如果在程序中要使用一个标识符例如cout,那么cout这个东西是在std中定义的,所以理论上应该是std::cout,但实际上为了书写代码时的简洁性,通常在开头就会写上std,程序中直接写cout时,它就会寻找是不是在std中定义过,但是这样会造成一个问题,如果你自己定的命名空间中包含std的内容的话,std中的命名空间就会很容易被污染掉,那会出现很多问题;其次,命名空间的实质是为了避免全局变量命名的冲突,也就是说它是把这个程序给封起来了,如果两个cpp中使用相同的函数名,通过命名空间可以将其区分;
4. 程序中开头#ifdef #else #endif的作用是?与#ifndef的区别?
首先在c++中以#开头的指令都被称之为预处理指令,程序编译分为三部分:预处理、编译和汇编,与if有关的称之为条件编译指令,只有为真时,才会进行这部分代码的编译;#ifndef是指不为真时(if not),进行编译;加上def代表的是define,是指定义,代表如果if后面的东西define过了,后面的程序才会被编译。
5. #include <.h>和#include ".h "两者的区别是什么?
<>使用时预处理程序会在系统默认路径或括号内的路径进行查找,通常适用于系统公共的头文件;“”使用时是在程序源文件所在目录的路径进行查找,找不到才会在系统默认路径进行查找,通常适用于自己写的头文件。
6. c++中的符号常量是什么?
通常我们知道有变量和常量的定义,例如int a=10; 那么a是个变量,值可以变的量;10是个常量,值不能变的量;那么在c++中例如用const int a=10,理论上a是个变量,但由于const限定符,导致其是个常量,因此将其称之为符号常量;符号常量的定义通常有两种方式实现:#define和const,区别是define只是做个文本替换
这篇关于努力学习c++的一天(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!