TianMu
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

Effective C++ 条款48 模板元编程(TMP)

条款48 : 认识template元编程 在条款47我们主要了解了萃取器这种模板元编程, 也初步进入了模板元编程的世界. 在本条款中, 我们将继续认识模板元编程, 认识其必要性和应用场景, 相比于条款47讲的还算比较深入,本条款真的就只是简介, 因为其体量确实非常庞大, 甚至可以单独作为一个学科研究. Template metaprogramming, 模板元编程, 简称TMP, 是编写temp
2025-01-22
#Effective C++ #模板

Effective C++ 条款47 萃取器

条款47 : 请使用traits classes表现类型信息 traits classes(萃取器类), 如你所见萃取器其实是一个模板类, 在C++中萃取器是一个神奇且有趣的存在, 它被广泛引用于标准库STL的编写中, 我们将在本条款中了解萃取器的功能及实现, 初步踏入模板元编程的世界. 模板元编程的初步认知很多人在第一次听到”模板元编程”时一定觉得非常高大上, 但是实际上我们可以简单认知其为针
2025-01-16
#Effective C++ #模板 #萃取

Effective C++ 条款46 友元非成员函数

条款46 : 需要类型转换时请为模板定义友元非成员函数 本条款是条款24的延申讨论, 在引入模板的前提下, 如果我们想实现某些隐式类型转换的操作, 会需要比以往多一些额外的操作, 让我们通过本条款来理解. 前提引入还记得条款24中的Rational吗, 这是一个有理数类, 内部包含分子和分母, 可以由int隐式转换而来, 当时条款24中讨论的核心是如何让Rational支持混合运算, 就像下面这
2025-01-14
#Effective C++ #模板

Effective C++ 条款45 运用成员函数模板接受所有兼容类型

条款45 : 运用成员函数模板接受所有兼容类型 本条款中我们将会以智能指针为例, 介绍如何通过成员函数模板使一个模板类可以接受所有兼容类型. 我们先来构建一个简单的继承体系 : 123456class Top { ... };class Middle: public Top { ... };class Bottom: public Middle
2025-01-13
#Effective C++ #模板

Effective C++ 条款44 防止代码膨胀

条款44 : 将与参数无关的代码抽离templates 我们知道代码重复和过度的inline都可能导致代码膨胀, 而在模板中会发生比较隐晦的代码重复, 我们应当尽力去避免代码重复的情况发生, 而最核心的方法就是将与参数无关的代码抽离templates, 让我们通过本条款进行了解. 在本条款中我们将会了解 : 在模板中什么情况下会发生代码膨胀? 如何缓解这种代码膨胀? 在缓解代码膨胀后如何知道
2025-01-12
#Effective C++ #模板

Effective C++ 条款43 模板基类的继承

条款43 : 学习处理模板化基类内的名称 在本条款中我们将探讨继承与模板共同使用时的注意事项, 有些我们通过学习继承得来的直觉在这里可能不再适用, 当我们从Object Oriented C++ 跨进 Template C++, 继承就不像以前那样畅行无阻了. 发现问题我们先引入一个例子, 假设我们要写一个程序, 他能够传送信息到若干不同公司去, 大部分公司传输的信息不需要加密, 少部分公司传输
2025-01-07
#Effective C++ #继承 #模板

Effective C++ 条款42 typename

条款42 : 了解typename的双重意义 本条款中我们将了解typename的两种使用场景, 对typename的内涵及使用加深认知. template声明式在template的声明中, template<class T>和template<typename T>都是被允许的, 这两种写法并没有任何差别, C++对这两种写法一视同仁, 但是在真正使用中, 作者还是建议
2025-01-05
#Effective C++

Effective C++ 条款41 隐式接口和编译期多态

条款41 : 了解隐式接口和编译期多态 从本条款开始, 我们将开始讨论模板与泛型编程, templates最初知识为了建立类型安全的泛用容器, 但在不断的发展中泛型编程的观念逐渐成型, 使得我们拥有了将写出的代码和其所处理的对象类型彼此独立的技术. 在本条款中我们将了解两个泛型编程中的核心概念–隐式接口和编译期多态. 在面向对象编程中, 显示接口和运行期多态是我们主要研究的对象 : 显示接口
2025-01-03
#Effective C++ #模板

Effective C++ 条款40 多重继承

条款40 : 明智而审慎地使用多重继承 相比于java选择单继承+接口类多继承的方式, C++选择了更加直接的方式, 其允许多重继承存在. 不可否认的是确实大多数情况下单继承都可以胜任, 但是同样不可否认的是多重继承也一定有其用武之地. 在本条款中, 我们将认识多重继承, 了解辅助其实现的虚继承机制, 并且知晓多重继承的主要应用场景. 多重继承的意思是继承一个以上的基类, 一般来说我们不希望这些
2025-01-01
#继承 #Effectiv C++

Effective C++ 条款38-39 复合和private继承

条款38 : 通过复合塑膜出has-a或”根据某物实现出” 在条款32中我们认识了public继承意味着is-a, 本条款将会认识两个新的关系, 均可通过”复合”这一操作实现出来. 复合所谓复合, 就是某种类型的对象内含其他类型的对象, 其实非常容易理解, 我们通过代码理解 : 123456789101112class Address { ... };
2024-12-29
#Effective C++ #继承
123456…8

搜索

Hexo Fluid
总访问量 次 总访客数 人