C++学习记录

注意在构造函数和析构函数中,不要调用任何虚函数,因为他会调用基类虚函数。

C++不像Java和Python有垃圾回收器,也就是由虚拟机来管理内存,程序员只需实例化对象,却不用去释放其占用的内存。C++的内存管理是双刃剑,用得不好就会内存泄漏,耗光系统的所有资源,用得好就可以写出速度很快的程序。


std::stringstream支持<<,并且可以输入各种数字,然后再转为std::string,std::string不支持添加数字。记得包含<sstream>。

C/C++的依赖是通过头文件(.h)和库文件(.lib)编译的,所以编译中出现链接问题,应该从这两个方向入手。在Visual Studio中的项目属性可以查看头文件包含目录和引用的库文件。ps.VS的项目属性非常强大,还可以设置生成的目标文件的目录,以及debug的目录。如图

 


C/C++的GUI框架QT非常强大,并且是跨平台的。WPS和许多Linux发行版中的桌面软件就是由QT构建。如果只使用标准库可能只会写出学生学籍管理系统这样的黑框框。如果在期末设计中使用QT来实现,我想可以惊呆老师的眼睛。


C/C++经常遇到编码问题,一般来说遇到的为UTF-8和GBK编码,两者在的英文编码是一样的,如果发现英文显示正常,中文乱码,则大概率是把前者当成后者解析了,或者反之。这个时候可以在VS的调试模式中查看变量值,如果发现乱码,那么多半在代码中是UTF-8编码,因为VS默认是GBK的,如果VS中没有乱码,而在程序运行中乱码,那就是运行时把GBK解析为了UTF-8。

总而言之,遇到乱码不要怕,可以先用notepad查看文件的编码格式,再用IDE来调试查看乱码的字符串变量值。也可以使用一些库方法,来看字符串的编码是什么。不要急着用notepad转换文件的编码,因为害怕后面会搞混乱。


.obj或.o文件是由.c文件生成的,一个.c文件被视为一个编译单元,最后由链接器把他们拼装起来。编译的步骤为 预编译->编译->汇编->链接。一般来说编译出错都在最后一步链接,链接出的最多的错就是函数或者变量签名问题,也就是接口出错。


enum color {red, yellow, green};// 代表不限定作用域,enum后加上class代表限定作用域

不限定作用域的结构体会自动地转换成整型,可以赋值给int

int i = color::red;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值