标签: C++

4 篇文章

深入理解C++中的左值引用,右值引用
先谈引用 由于C中的指针过于灵活,容易出错,所以C++引入了引用来减少出错的用法,记得C++ primer中说,引用就是一个变量的别名,在初始化引用后,引用就无法改变再引用到其他的对象了。在遇到类的移动构造函数时,又见识到了右值引用,书上说,右值引用用于引用到临时对象。 那么就存在一些问题了: 这个别名到底是怎么实现的呢? 引用和指针存在什么关系呢…
谈谈C++中变量初始化的问题
背景 C++中的变量分为外部变量(全局变量,静态变量)和局部变量,而变量本身又分为基本类型变量和类变量,在初始化的时候,各种变量存在不同的处理方式,在此总结记录下 初始化与赋值 初始化和赋值对于基本变量而言,基本没有区别,但对于类变量而言,初始化会调用构造函数,而赋值则是调用拷贝构造函数 初始化的写法为: T a=T(...); T a; T a(…
谈谈C++之多文件编译
前言 C++采用了多文件编译,在逻辑上,整个程序包含所有文件,但编译是针对单个文件生成目标文件,多文件是在链接时才进行整合,所以在编译过程中,我们需要指明当前文件所需要的其他文件的信息。C++编译是区分.h和.cpp文件的,cpp会生成目标文件,而.h不会生成目标文件。 一般而言,我们利用 .h作为头文件来传递文件间的信息, .cpp文件用于具体程…
Clion中添加makefile相关参数
Cmake添加LDLIBS相关参数 编译的项目中Makefile存在 LDLIBS += -lpng -ljpeg 但是不知道在makelist中该怎么写,在stackflow查询得知 set(CMAKE_EXE_LINKER_FLAGS "-ljpeg ${CMAKE_EXE_LINKER_FLAGS}") set(CMAKE_EXE_LINKE…