4.12 — 类型转换和 static_cast 简介
隐式类型转换 考虑以下程序: #include <iostream> void print(double x) // print 接受一个 double 参数 { std::cout << x << ‘\n’; } int main() { print(5); // 当我们传入一个 int 值时会发生什么? return 0; } 在上面的例子中,print() 函数有一个……
隐式类型转换 考虑以下程序: #include <iostream> void print(double x) // print 接受一个 double 参数 { std::cout << x << ‘\n’; } int main() { print(5); // 当我们传入一个 int 值时会发生什么? return 0; } 在上面的例子中,print() 函数有一个……
什么是 C++20? 2020 年 2 月,ISO(国际标准化组织)批准了 C++ 的新版本,称为 C++20。C++20 包含了自 C++11 以来对语言进行的最大修改。C++20 中的新改进 为您感兴趣,以下是 C++20 添加的主要更改列表。请注意……
在上一课 () 中,我们介绍了函数模板,并将普通的 max() 函数转换为 max<T> 函数模板: template <typename T> T max(T x, T y) { return (x < y) ? y : x; } 在本课中,我们将重点介绍函数模板的使用方式。使用……
能走到这一步很棒。标准转换规则相当复杂——如果你不理解每个细微之处也无需担心。章节回顾 将一个值从一种数据类型转换为另一种数据类型的过程称为 。(也称为 或 )在以下情况下执行……
在课程 中,我们编写了一个函数模板来计算两个值的最大值: #include <iostream> template <typename T> T max(T x, T y) { return (x < y) ? y : x; } int main() { std::cout << max(1, 2) << ‘\n’; // 将实例化 max(int, int) std::cout ……
考虑以下程序: int add(int x, int y) { return x + y; } 当这个函数被编译时,编译器将确定 x + y 评估为一个 int,然后确保返回值的类型与函数声明的返回类型匹配(或者……
在课程 中,我们讨论了表达式如何根据其运算符的优先级和结合性进行评估。考虑以下表达式: int x { 2 + 3 }; 二元运算符+ 接受两个操作数,都为 int 类型。因为两个操作数都为相同类型,所以该类型将……
在上一课 () 中,我们讨论了数字提升,即将特定的较窄数字类型转换为可以高效处理的较宽数字类型(通常是 int 或 double)。C++ 支持另一类数字类型转换,称为 。这些数字转换涵盖了基本类型之间额外的类型转换。……