C++
phoenix8956
这个作者很懒,什么都没留下…
展开
-
c++标准能做到以下这几点就好了
1、模块(包)管理机制去除头文件------再也不用担心找不到头文件了2、异常规范编译时检查—不用等运行时才发现漏掉异常处理程序,这样就不用抛弃throw()改用noexcept声明可能的异常了3、除了现有智能指针类以外,加一个守卫指针,对象删除时守卫指针自动置空以上纯属个人建议...原创 2021-07-24 12:57:21 · 107 阅读 · 0 评论 -
何时用返回值何时用异常来用于错误处理
考虑性能 返回值 优于 异常如果程序中高频出现错误处理,则用返回值情景:假如不考虑用select和epoll等,用轮询来读取多个连接的数据,此时为了不互相阻塞干扰,用非阻塞的读取函数。此时read将大量出现返回-1的情况,如果不用返回值表示暂时无数据读取,而用异常。那么性能消耗将是可怕的。以下为简单模拟代码:#include<iostream>#include<Windows.h>#include<ctime>#include<list>#d原创 2020-06-22 07:14:24 · 585 阅读 · 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 · 1798 阅读 · 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 · 448 阅读 · 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 · 5024 阅读 · 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 · 1247 阅读 · 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 · 571 阅读 · 0 评论