C++
phoenix8956
这个作者很懒,什么都没留下…
展开
-
c++标准能做到以下这几点就好了
1、模块(包)管理机制去除头文件------再也不用担心找不到头文件了 2、异常规范编译时检查—不用等运行时才发现漏掉异常处理程序,这样 就不用抛弃throw()改用noexcept声明可能的异常了 3、除了现有智能指针类以外,加一个守卫指针,对象删除时守卫指针 自动置空 以上纯属个人建议 ...原创 2021-07-24 12:57:21 · 138 阅读 · 0 评论 -
何时用返回值何时用异常来用于错误处理
考虑性能 返回值 优于 异常 如果程序中高频出现错误处理,则用返回值 情景:假如不考虑用select和epoll等,用轮询来读取多个连接的数据,此时为了不互相阻塞干扰,用非阻塞的读取函数。此时read将大量出现返回-1的情况,如果不用返回值表示暂时无数据读取,而用异常。那么性能消耗将是可怕的。 以下为简单模拟代码: #include<iostream> #include<Windows.h> #include<ctime> #include<list> #d原创 2020-06-22 07:14:24 · 630 阅读 · 0 评论 -
exit和ExitThread为啥不安全,这个列子很直观
#include<cstdio> #include<cstring> #include<Windows.h> class Test { public: Test(){ data = new int; } ~Test() {//析构函数主要释放堆空间上的内存 if (data) { printf("析构函数\n"); delete da...原创 2019-08-13 11:03:02 · 1846 阅读 · 0 评论 -
随记,虚函数与引用
#include <QCoreApplication> #include<stdio.h> class A {protected: int x; public: A(int xx):x(xx) {} virtual void say(){printf("a say %d\n",x);} }; class B:public A {protected: int y; pu原创 2017-05-25 08:23:08 · 479 阅读 · 0 评论 -
C++(qt)游戏实战项目:坦克大战(三)
前面实现了地图的显示但是地图很单一,这回实现地图的编辑、保存和载入。 我们给地图类Gamemap添加下面几个成员函数 gamemap.h int switchstyle(int i,int j);//改变cells[i][j]地图块的样式 void setstyle(int i,int j,int style);//设置cells[i][j]地图块的样式 void dele原创 2017-05-29 20:02:35 · 5084 阅读 · 8 评论 -
C++二进制读写类对象注意指针问题
#include<iostream> #include<cstdlib> #include<cstring> #include<ctime> #include <fstream> using namespace std; class A { public: A() {} virtual void say(); }; class B :public A { public: B(原创 2017-06-19 11:10:31 · 1276 阅读 · 0 评论 -
C++类的前向声明
今天遇到个情况大致可以如下//file a.h #include"xxxx.h"//xxxx.h里最终间接的把b.h也包含了 class A{ public: A(){} };//file b.h #include "a.h" class B{ public: B(){} private: A a; }结果导致编译错误 我们分析a.h对应的a.cpp单元最终可以得到如下代码//file: a.cp原创 2017-05-24 15:53:13 · 583 阅读 · 0 评论