左值和右值

左值和右值

C++中关于左值右值以及移动语义这块内容并不是很好理解,对这块内容做一个总结。

阅读更多
mutable

mutable

想象一下,你有一个成员函数,它被标记为const,因为你不希望在该函数中修改成员变量,为了保证类状态不变。

但是后来随着版本演进,你又不得不在该函数中修改一个新的成员变量,这个新的成员变量通常和类状态无关。

那么你需要认识下mutable。

阅读更多
GDB和ELF
C++版本演进
C++测量性能

C++测量性能

性能,功耗,稳定性是衡量软件质量的重要指标。关注软件性能就是希望用最少时间做正确的事情,相同的输入在得到期望的输出过程中使用最少时间就意味着性能最优。优秀的软件架构,优秀的算法都是提高软件性能的重要手段。

我们平时写C++软件时候,可以如何测量软件性能呢。

这里分享一个简单好用的测试性能的方法。

阅读更多
不使用回车获取单个按键值

不使用回车获取单个按键值

C++软件在终端的每一次输入都以回车键作为结束,但是有些场景,我们希望每一个输入按键都能及时转换成对应的功能。

例如,在一个小游戏中,我希望WSAD的按键可以转换成上下左右的执行命令。我不希望看到这些按键在终端中输出出来,并且输入立即执行,不需要按回车按键。

可以利用stty来实现该功能。

阅读更多
C++中new一个对象

C++中new一个对象

对象很难找吗?new几个不就好了吗?

C++语言中,当我们new一个对象时候,背后做了哪些事情呢?

阅读更多
printf输出特定格式
如何用Visual Studio制作libraries

如何用Visual Studio制作libraries

对于大的项目,学会制作libraries文件非常重要。就像java语言中将源代码打包成jar包,C++中将源代码打包成静态链接库。

下面我们要在一个解决方案中创建两个项目,一个项目编译产物为静态链接库文件,一个为可执行文件,这个可执行文件将会引用创建的静态库文件。

阅读更多
如何使用libraries