C++
文章平均质量分 80
Estrike
这个作者很懒,什么都没留下…
展开
-
CCF CSP 点亮数字人生
原题地址#include<bits/stdc++.h>using namespace std;struct Tool{ string name;//器件名 int onum=0;//入度 vector<int> in;//来自标准输入 vector<int> oin;//来自其他器件输出的输入 vector<int> outdegree;//输出到的器件};int Q,M,N,flag;//flag为0时表示原创 2021-04-08 20:54:16 · 144 阅读 · 0 评论 -
《Effective C++》读书笔记6.继承与面向对象设计
继承与面向对象设计条款32:确定你的public继承塑模出is-a关系public继承意味is-a。适用于base classes身上的每一件事情一定适用于derived classes身上,以为每一个derived class对象也一定是一个base class对象条款33:避免遮掩继承而来的名称derived class作用域被嵌套进base class作用域内,类似于local和global。derived中的函数会遮掩base中的所有同名函数,即使他们参数不同。解决方案 用using声明原创 2021-03-22 21:57:25 · 140 阅读 · 0 评论 -
《Effective C++》读书笔记 5.实现
实现条款26:尽可能延后变量定义式的出现时间只要你定义了一个变量而其类型带有一个构造函数或析构函数,那么当程序控制流到达这个变量定义式时,你便得承受构造成本;当这个变量离开其作用域时,你便得承受析构成本。即使这个变量最终并未使用,仍需耗费这些成本,所以你应该尽可能避免这种情形对于循环而言变量的定义方式通常有两种//方法A:定义于循环外Widget w;for(int i=0;i<n;i++){ w=....; ...}//方法B:定义于循环内for(int i=0;i<n原创 2021-03-04 20:51:51 · 112 阅读 · 0 评论 -
《Effective C++》读书笔记 4.设计与声明
设计与声明条款18:让接口容易被正确使用,不易被误用如果接口要求客户必须记得做某些事情,就是有着”不正确使用“的倾向tr1::shared_ptr提供的构造函数接受2个实参,一个是被管理的指针,一个是引用次数变0时将被调用的“删除器”“将原始指针传递给pInv构造函数”会比“先将pInv初始化为null再对它做一次赋值操作”更好cross-DLL problem:对象在动态链接程序库(DLL)中被new,却在另一个DLL内被delete。许多平台,这一类“跨DLL的new/delete”会导致运行原创 2021-02-27 17:46:33 · 145 阅读 · 0 评论 -
《Effective C++》读书笔记 3.资源管理
资源管理条款13:以对象管理资源把资源放进对象内,我们便可倚赖C++的析构函数自动调用机制确保资源被释放现考虑有个f函数void f(){ Investment* pInv=createInvestment(); ... delete pInv;}这看起来妥当,但若干情况下f可能无法删除它取得自createInvestment的投资对象-------或许是因为“…”区域内的一个过早的return语句。就算谨慎编写程序防止这类错误也无法保证后来的维护者能做到有效的资源管理。RAII:R原创 2021-02-07 17:39:50 · 105 阅读 · 1 评论 -
《Effective C++》读书笔记 2.构造/析构/赋值运算
构造/析构/赋值运算条款05:了解C++默默编写并调用哪些函数编译器自动生成copy构造函数、copy assignment操作符、default构造函数(没有声明任何构造函数的时候) 这些函数都是public且inline的注意,只有在这些函数被需要(被调用)的时候它们才会被编译器创造出来关于copy构造函数和copy assignment操作符=,只有当生出的代码合法且有适当机会证明它有意义,编译器才会自动生出。比如成员变量里面有引用或者const,无法赋值,编译器没法解决,就不生成条款06:原创 2021-02-03 21:43:42 · 134 阅读 · 0 评论 -
《Effective C++》读书笔记 1.让自己习惯C++
让自己习惯C++条款01:视C++为一个语言联邦将C++视为四个主要次语言的联邦CObject-Oriented C++Template C++STL不同次语言的高效编程守则要求可能不同条款02:尽量以const,enum,inline替代#definedefine的坏处不利于维护,安全性弱1.用const取代定义常量指针:注意const的放置class专属常量:为确保常量至多只有一份实体,必须让它成为static成员:class GamePlayer{private:原创 2021-01-31 23:58:36 · 94 阅读 · 0 评论