网站首页 站内搜索

搜索结果

查询Tags标签: Effective,共有 160条记录
  • Effective C++ - 条款3 - 关于const的一切

    const与* 符号左侧为所指对象的语义,符号右侧为指针自身语义 const与iterator const iterator(是T* const) != const_iterator 详细原因应参考c++编译和c++设计与演化 const避免将==写成= 运算符的重载函数返回const对象可以避免运算结果被赋值,该赋值可能是由于错误将=…

    2022/8/21 1:53:49 人评论 次浏览
  • 《Effective Java》第16条:要在仅有类中使用访问方法而非公有域

    《Effective Java》第16条:要在仅有类中使用访问方法而非公有域 一、 问题 有时候我们需要定义一些类用来集中实例域(Java对象中的数据)。经常我们会把这些数据域声明为public,可以被直接访问。这样公有类暴露了它的数据域,有以下两个缺点: 1、要想在将来改变其内部…

    2022/8/14 1:26:42 人评论 次浏览
  • 【Effective C++】设计与声明——成员变量和成员函数

    将成员变量声明为private 为什么成员变量不该是public? (1)从语法一致性来说,如果成员变量不是public,就需要通过成员函数访问成员变量。public接口内的每样东西都是函数的话,客户就不需要在访问class成员时考虑要不要加小括号。(2)如果成员变量是public,任何人都…

    2022/7/10 14:24:21 人评论 次浏览
  • Effective C++:以const、enum和inline来替换define

    替换define,也就是“以编译器替换预处理器”。#define是C语言里的利器,但在C++里有很多取代它的理由。define是预处理的一部分,而不是编译器的一部分,它在编译前就被替换掉,因此不会保留符号信息。 #define ASPECT_RATIO 1.653 //const double ASPECT_RATIO = 1.653;…

    2022/7/1 1:19:31 人评论 次浏览
  • Effective C++:把C++看作一个语言联邦

    C++曾经是从C with class发展而来的,但是现在随着异常、模板、STL等等的发展,C++已变得相当的多样与庞大,这一方面让C++功能强大无比的多重范式语言,上天入地无所不能;另一方面,也给学习者带来了相当的困难:处处都有繁杂特殊用法,处处又都有例外,怎么办呢? 解决…

    2022/7/1 1:19:31 人评论 次浏览
  • Effective c++ 条款9 绝不在构造和析构过程中调用virtual函数

    问题:当derived class对象调用derived class constructor函数前,会先调用base class constructor函数。如果derived class重写了base class的虚函数vfunc(),base class constructor函数中调用vfunc(),此时derived class对象调用base class constructor,会调用base clas…

    2022/6/20 5:20:26 人评论 次浏览
  • Effective c++条款2:尽量用const,enum,inline替换#define

    #define ASPECT_RATIO 1.653ASPECT_RATIO可能从未被编译器看见;也可能在编译器开始处理源码前就被预处理器移走。这也就导致其可能没进入symbol table。 且对浮点常量而言,预处理器盲目地将宏名称替换,可能导致object code出现多份解决之道:利用const替换defineconst d…

    2022/6/18 5:20:07 人评论 次浏览
  • effective c++ 条款4:确定对象被使用前已先被初始化

    确保每一个构造函数都将对象的每一个成员初始化使用member initialization list 替换 assignment:总是在初值列中列出所有成员变量 base classes比derived classes更早初始化,而class的成员变量总以其声明次序被初始化,即使他们在成员初值列中以不同次序出现,也不会有任…

    2022/6/18 5:20:06 人评论 次浏览
  • Effective 条款5:了解C++默默编写并调?哪些函数

    一个empty class编译器会自动声明:default构造函数(没有声明构造函数) copy构造函数 copy assignment运算符 析构函数(non-virtual)唯有这些函数被调用,才会被编译器创建出来 class中若含有reference/const成员,编译器不会生成copy assignment操作符,而由程序员自…

    2022/6/18 5:20:04 人评论 次浏览
  • 《Effective C++》阅读总结(三):资源管理

    C++中的资源管理非常重要,在将资源加载到内存后,便可以使用资源了,当我们不再需要资源时,我们要保证其正确的释放,才能将其占用的内存空间归还给操作系统,不正确的释放很容易造成内存泄漏。本章以资源管理类为基础,提出了以下几条准则,这章内容比较简单,大概总结…

    2022/5/30 1:22:40 人评论 次浏览
  • 【Effective C++】设计与声明

    所谓软件设计,是“令软件做出你希望它做的事情”的步骤和做法,通常以颇为一般性的构想开始,最终演变成十足的细节,以允许特殊接口的开发,这些接口而后必须转换为C++声明式。本章将以接口开始讲解软件设计和声明,主要包括以下几个部分:接口 类 参数 返回值 成员变量…

    2022/5/24 1:19:59 人评论 次浏览
  • Effective C++ 总结[条款35 考虑virtual函数以外 的其他选择]

    假设写一个原神抽奖的函数,将玩家分为普通玩家、微氪玩家、氪金狂魔等,以下是所有类的基类:class BaseTraveller { public:virtual void lottery(int num); };其他玩家分类都可以重写该抽奖函数,以提供不同的抽奖算法。这是用virtual函数来实现的,现在本条款介绍了几…

    2022/5/4 20:13:04 人评论 次浏览
  • Effective Modern C++ 条款 11 优先使用 =delete 删除函数 而不是 private 未定义函数

    总结自《Effective Modern C++》条款 11 常见场景单例模式删除复制构造、复制赋值运算符重载理由未定义的调用在连接阶段才暴露 =delete 可以支持任何函数的生成,包括非成员函数 =delete 可以阻止模版针对特定类型的实例化⚠️ 习惯上,=delete 都是 public 的,因为 C++…

    2022/5/3 22:13:10 人评论 次浏览
  • 《Effective Python》笔记 第六章-元类与属性

    阅读Effective Python(第二版)的一些笔记目录第44条 用纯属性与修饰器取代旧式的setter与getter方法第45条 考虑用@property实现新的属性访问逻辑,不要急着重构原有的代码第46条 用描述符来改写需要复用的@property方法第47条 针对惰性属性使用__getattr__、getatt…

    2022/5/2 12:42:42 人评论 次浏览
  • 《Effective Python》笔记 第五章-类与接口

    阅读Effective Python(第二版)的一些笔记目录第37条 用组合起来的类来实现多层结构,不要用嵌套的内置类型第38条 让简单的接口接受函数,而不是类的实例hook(钩子函数)第39条 通过@classmethod多态来构造同一体系中的各类对象第40条 通过super初始化超类直接调用…

    2022/5/1 14:12:42 人评论 次浏览
共160记录«上一页1234...11下一页»
扫一扫关注最新编程教程