
C++
文章平均质量分 91
爱吃菠萝不吃萝卜
游戏开发相关文章在知乎上,知乎同名~
展开
-
C++ map中的find()函数 导致程序崩溃
map未初始化,导致map.size()特别大,使用find的时候,程序崩溃。原创 2020-07-03 17:50:48 · 3890 阅读 · 0 评论 -
C++学习需要注意的一些东西(一)
C++嘛,emmm......我觉得挺难学的,以前在学校的时候,老师布置的作业,能运行出正确的结果就行,其他的,管他呢,能交差就行,而这也给自己埋下了隐患,工作中被打脸(emmm....自己打自己脸)。 嘻嘻,话不多说,赶快写总结吧,我是一个初学者,求大佬们指正┭┮﹏┭┮~ 1、如前文所说,项目中,能够用正确的数据运行出正确的结果,那只说明了程序已经完成了一小部分,后面...原创 2019-08-27 22:57:59 · 239 阅读 · 0 评论 -
STL注意事项一(front()引用)
写代码的时候,使用front()函数,未判断容器是否为空,导致程序崩溃。使用标准库中的list、vector等中的front()函数时候需要判断该变量是否为空。front()返回容器首元素的引用,在空容器中使用front()是未定义的,程序会崩溃。详见 cppreference以后还是要多看看标准库文档吖~~...原创 2020-07-03 18:58:45 · 633 阅读 · 0 评论 -
【C++】深入理解右值引用
篇幅较长,算是从0开始介绍的,请耐心看~该篇介绍了左值和右值的区别、左值引用的概念、右值引用的概念、std::move()的本质、移动构造函数、移动复制运算符和RVO。1. 左值和右值首先来介绍一下左值和右值的区别,内容参考于《C++ primer 5th》4.1。当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。(受对象用途影响)原则:在需要右值的地方可以用左值代替,但是不能把右值当成左值使用(对象移动除外)。当一个左值代替右值使用时原创 2021-07-26 23:16:57 · 753 阅读 · 4 评论 -
【C++】深入理解左值引用
测试环境:Visual Studio 2017概念我们日常说的引用,通常指的是左值引用(右值引用请参考C++ primer 5th)。引用为对象起了另外一个名字,引用类型引用另外一种类型(来源:C++ primer 5th p45)。代码如下:int a = 1024; int &b = a; //b指向a,b引用a int &c; //报错,引用必须被初始化std::cout << a << std::endl; //输出 1024s原创 2021-07-17 16:38:03 · 297 阅读 · 1 评论 -
C++ 空类的大小
深度探索C++对象模型(83-88页):那是被编译器插进去的一个char ,使得这个class的不同实体(object)在内存中配置独一无二的地址。也就是说这个char是用来标识类的不同对象的既然是空类,为何要设置标志去区分?有很多这样的宏#define ARRAY_SIZE(x) sizeof(x)/sizeof(x[0]) 如果对象大小是0 这个宏会发生除0错误。参照:知乎问答...原创 2020-07-09 00:04:07 · 339 阅读 · 0 评论 -
C++ memset使用注意事项
memset用于给某一块内存空间进行赋值,所以赋值的对象必须是定义的。memset不能用于清空string、vector等类型。原因如下:string、vector类型内部除了数据还有其他东西,使用memset会破坏其内部结构。...原创 2020-07-08 23:22:12 · 443 阅读 · 0 评论 -
构造函数可不可以调用虚函数?析构函数可不可以调用虚函数
构造函数可以调用虚函数,但是最好别这样做。例:#include<string>#include<iostream>using namespace std;class B {public: B(const string& ss) { cout << "B constructor\n"; f(ss); } virtual void ...原创 2020-04-01 01:06:38 · 346 阅读 · 0 评论 -
构造函数能不能是虚函数?析构函数能不能是虚函数?
构造函数不能是虚函数虚函数调用是一种在给出部分信息的情况下完成工作的机制,我们可以只知道接口而不知道对象的确切类型。即可以通过父类的指针或引用来调用子类的那个成员函数。而创建一个对象,需要知道对象的完整信息,需要知道你想要创建的类的确切类型。因此,构造函数不应该被定义为虚函数。析构函数什么时候声明为虚函数该类具有至少一个虚函数的时候,表示该类充当派生类的接口,这个时候要把基类析构函...原创 2020-04-01 00:19:18 · 449 阅读 · 0 评论 -
C++空类默认生成哪些成员函数
C++98/03如果用户未声明默认构造函数,编译器将生成一个默认构造函数。(default constructor)如果用户未声明拷贝构造函数,编译器将生成一个拷贝构造函数。(copy constructor)如果用户未声明赋值运算符,编译器将生成一个赋值运算符。(copy assignment operator)如果用户未声明析构函数,编译器将生成一个析构函数。(destructo...翻译 2020-03-31 18:30:03 · 614 阅读 · 0 评论 -
基于C++的IM即时通讯系统之登录(二)
vs2017 + 云服务器 + Linux + MySQL + C++ + 代码 = IM服务器QT creator 4.11.0 + Windows + C++ + 代码 = IM客户端代码:- 代码地址:XiaIM流程服务器去腾讯云/阿里云官网购买一个云服务器。使用vs2017新建一个控制台应用程序,并配置远程调试信息,填写IPv4(公),用户名(root)...原创 2020-03-15 00:30:56 · 1445 阅读 · 0 评论 -
基于C++的IM即时通讯系统之登录客户端(一)
QT creator 4.11.0 + C++ + 代码 = IM客户端手写代码做界面。客户端。代码地址:XiaIM流程新建一个Qt Widgets Application项目。新建一个类,取名为login。界面代码如下:login.h#ifndef LOGIN_H#define LOGIN_H#include <QMainWindow&g...原创 2020-03-14 19:56:02 · 1612 阅读 · 0 评论