努力学习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++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

C++11右值引用与Lambda表达式的使用

《C++11右值引用与Lambda表达式的使用》C++11引入右值引用,实现移动语义提升性能,支持资源转移与完美转发;同时引入Lambda表达式,简化匿名函数定义,通过捕获列表和参数列表灵活处理变量... 目录C++11新特性右值引用和移动语义左值 / 右值常见的左值和右值移动语义移动构造函数移动复制运算符

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

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最为重要的