努力学习c++的一天(一)

2024-05-31 00:58
文章标签 c++ 一天 努力学习

本文主要是介绍努力学习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++的一天(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017170

相关文章

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决