ICode9

精准搜索请尝试: 精确搜索
  • Effective C++ 条款18:让接口容易被正确使用2021-07-03 19:32:00

    接口需要传什么参数 例如一个日期类 class Date { public: Date(int month, int day, int year); }; 年月日是三个必要数据,不同国家年月日的排列不同。所以这个是有歧义的。解决方法是设计年月日三个类,并且不让隐式转型。 class Month{ public: explicit Month(int m): val

  • Effective C++ 条款19:设计class犹如设计type2021-07-03 16:33:16

    新类型的对象如何被创建和销毁。涉及到构造函数,析构函数,new和delete 新类型的对象初始化和赋值有什么差别。涉及到构造函数和赋值运算符 如果新类型的对象以值传递意味着什么。涉及到复制构造函数 什么是合法值。涉及到成员变量的限定。比如一个表示月份的类,其值不应该超过12 新

  • Effective C++ 条款17:以独立的语句将new出的对象置入智能指针2021-07-03 16:31:06

    考虑下面这段代码 // preliminary int priority(); class Widget{}; // call function 'doSomething' doSomething(shared_ptr<Widget>(new Widget), priority()) 在执行调用语句的时候,编译器需要考虑这三个步骤 new Widget 调用priority方法 将new出来的Widget临时对象放入智

  • Effective C++ 条款49:了解new-handler的行为2021-07-03 15:03:12

    new失败了会发生什么 当用new来申请一块内存的时候,如果申请失败了,编译器会抛出一个异常(新式)或者返回一个null(旧式)。 在抛出异常或者返回null之前,编译器会先调用一个new_handler的方法,可以理解为错误处理函数。 namespace std { typedef void (*new_handler) (); new_handl

  • Effective C++ 条款15:在资源管理类中提供对原始资源的访问2021-07-02 14:33:01

    有些API接口必须要原始的指针而非只能指针怎么办呢。有两个解决方法 get 隐式转换 举个例子,假如我们有以下类。 class FontHandle{}; void releaseFont(FontHandle fh); class Font { public: explicit Font(FontHandle fh): f(fh){} ~Font() { releaseFont(f);} private:

  • Effective C++ 条款10:令operator=返回一个reference to *this2021-07-02 14:31:15

    这样做是为了能连等于,下面是个例子。 class Number{ public: Number& operator=(int num){ number = num; return *this; } private: int number; }; int main() { Number a, b, c; a = b = c = 1; a = (b = (c = 1)); } 像+=,*= ,/=这种

  • Effective C++ 条款2:尽量以const,enum,inline替换#define2021-06-20 14:04:26

    #define用来定义常量。 首先我们需要知道,#define会在预编译的时候,以字符串替换的形式被替换掉。假设我们#define AspectRatio= 1.635。如果AspectRatio在使用的过程中报错,编译器会直接提示1.635。如果这个宏是其他文件定义的,那么对于使用者而言,他甚至都不知道1.635是个什么东西。

  • Effective C++ 条款1:视C++为一个语言联邦2021-06-19 13:33:41

    作者将C++分为四个板块,每个板块之间相对独立,但又有联系。 c语法 面向对象C++ 模板 STL C C++涵盖了C基本语法。对于c内置类型,传值比传引用高效。 Object-Oriented C++ 面向对象设计部分。类,封装,多态,继承,虚函数,动态绑定 Template C++ C++泛型编程。 STL 容器,迭代器,算法,函数对象

  • 个人C++学习路线大公开2021-06-18 22:02:29

    摄于2020-12-11 上海环球港 一乐拉面   大家好,我是阿秀。 前言 上篇文章发布后,问我如何学习 C++ 的小伙伴可远比问我如何写简历和刷题的多多了,思虑再三还是先把自己的 C++ 学习路线发出来吧,从入门到入土的那种。坐好小板凳,准备发车了~ 萌新入门 我在 2019 年 8 月之前对 C++ 的

  • Effective c++ 要点记录2021-06-18 14:36:14

    前言 这里面很多坑其实《c++ primer》里面都说到了...这篇文章主要记录一些精华条款 1.const const 与 指针 int * p; //指向变量,指针可赋值 const int * p; //指向常量,指针可赋值 int const * p; //指向常量,指针可赋值 const int * const p; // 指向常量,指针不可赋值 co

  • EffectiveC++12021-06-14 22:59:07

    视C++为一个语言联邦 一开始C++只是C加上一些面向对象特性,但是随着这个语言的成熟他变得更加无拘无束,接受不同于C with classes的各种观念、特性和编程战略。异常对函数的结构化带来了不同的做法,templates将我们带来到新的设计思考方式,STL则定义了一个前所未见的伸展性做法。

  • 【Effective Java】第4章 读书笔记2021-06-14 14:04:45

    第4章 类和接口 15,使类和成员可访问性最小化 尽可能地使每个类或者成员不能被外界访问。 公有类的实例域绝不能是公有的。 包含公有可变域的类通常并不是线程安全的。 让类具有公有的静态 final 数组域,或者这种域的访问方法是错误的。 16,要在公有类中使用访问方法而非公有域

  • 《Effective Python 2nd》 读书笔记——函数2021-06-13 17:59:45

    引言 Python函数提供了许多能够简化编程工作的特性,有些是Pythton特有的。这些特性能够更明确地体现出函数的目标。 #19 不要把函数返回的多个值拆分到三个以上的变量中 拆包机制允许Python函数返回一个以上的值。假如现在要统计一群鳄鱼的各项指标,把每条鳄鱼的体长都保存在列

  • Effective Java 读书笔记(四)2021-06-06 17:59:04

    前言: 又又来更新了,鸽王了害,自从工作了之后一直很少花时间看书了,最近搬了新的家环境一变,又有了点儿兴致hh,大概率更新的节奏是每周一篇吧,工作日要上班蛮累的。。。希望自己可以坚持下去吧~ Item07:Eliminate expired object references 消除过期的对象引用 JAVA中有自动的回收功

  • effective_transformer2021-06-02 09:57:21

    对字节跳动 effective_transformermer的理解 transformer模型在self-attention的时候,需要用到统一输入batch的长度。但是其他模块不需要。因此,在其他模块(FF模块)可以移除pad token  

  • Effective C++的读书简要笔记2021-05-26 15:05:13

        Effective C++的读书简要笔记,在这里记录下,简要记录,需要更详细的可以去看书。     T1 cpp是语言联邦: 过程形式(procedure),面向对象(object-oriented),函数形式(functional),泛型形式(generic)和元编程(metaprogramming)   T2 尽量用const,enum, inline替换 #define 若使用define,记号名

  • Effective Java 学习笔记 - 第二章 创建和销毁对象 Rule2 遇到多个构造器参数时优先考虑使用构建器2021-05-21 15:05:59

    目录 Rule2 遇到多个构造器参数时优先考虑使用构建器 思考一个问题 1、利用构造函数生成对象 2、利用JavaBean实现 3、建造者模式 Rule2 遇到多个构造器参数时优先考虑使用构建器 思考一个问题 Q:做项目时,如果遇到一个POJO,具有多个属性,同时其中有几个是业务必须项,那么我们一般如

  • 【Effective Python】用sort/sorted方法的key参数来表示复杂的排序逻辑2021-05-20 16:59:31

    用sort/sorted方法的key参数来表示复杂的排序逻辑 01. 简介 sort()是应用在内置的列表类型(list)上的方法,主要有以下特点: 这个方法会修改原始的 list(返回值为None)通常这个方法不如sorted()方便如果你不需要原始的 list,list.sort()方法效率会稍微高一些。 02. 用法 2.1 基本用法

  • effective C++——限制类所能产生的对象数量2021-05-17 10:58:14

    第一章:效率Item M19:理解临时对象的来源    1.C++临时变量指的是匿名变量,匿名变量带来了构造和析构的开销     2.如果要返回一个对象,最好不要返回局部变量,它会带来两次的构造和一次的析构,可以通过调用构造函数构造一个匿名变量进行返回Item M21:通过重载避免隐式类型转换 

  • effective C++ 使用条款(二)——item34~item46总结2021-05-17 10:55:39

    第六章 继承和面向对象设计 条款35: 使公有继承体现 “是一个” 的含义     1.子类对象一定“是一个”基类对象,基类对象不一定是子类对象  条款36: 区分接口继承和实现继承     1.希望派生类只继承成员函数的接口——将函数声明为纯虚函数     2.希望派生类同时继承

  • effective C++ 使用条款(一)——item1~item33总结2021-05-17 10:55:32

    第一章:从c转向c++ 条款1:尽量使用const、inline代替define——尽量使用编译器而不是预处理器   define是预处理阶段的宏替换,使用宏替换不便于调试,因为宏替换所使用的别名并不会在编译器生成的符号列表中。如果要定义常量,应该使用const,对于常字符串,则应该使用const char * const,当

  • 《Effective C++》条款35 Strategy 模式写法记录2021-05-16 12:01:30

    Non-Virtual Interface (NVI) 手法实现 这个方法主张 virtual 函数应该几乎总是 private。这个流派认为,较好的设计是保留 healthValue 为 public 成员函数,但让它成为 non-virtual ,并调用一个 private virtual 函数进行实际工作 class GameCharacter{ public: int healthValu

  • effective C++ 读书精华笔记提取2021-05-15 23:03:33

    目录让自己习惯c++尽可能的使用const确定对象使用前被初始化构造、析构和赋值运算C++默认编写和调用的函数:若不想使用编译器自动生成的函数,明确拒绝。为多态的基类声明virtual 析构函数。绝不在构造和析构函数中调用virtual函数。operator=操作符实现尽力少做转型的动作透彻了解i

  • Effective Java笔记2021-05-13 13:05:25

    使用Build模式 不是直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器,得到一个builder对象 然后客户端在builder对象上调用类似于setter的方法,来设置每个相关的可选参数 最后,客户端调用无参的build方法来生成不可变的对象 // 在这当中 FF是不可变的,所有的默认参数

  • Effective C++ 详解条款15: 在资源管理类中提供对原始资源的访问2021-05-06 20:57:51

    假期归来第一天!!!!学习起来up up up ღ( ´・ᴗ・` )ღ比心 由条款13导入一个例子:使用智能指针如auto_ptr或 tr1: :shared ptr保存factory函数如createInvestment的调用结果: std::tr1::shared_ ptr<Investment> pInv (createInvestment()); //见条款13 假设你希望以某个函数处理I

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有