当前位置: 首页 > news >正文

C++中定义类型名的方法

什么是 C++ 中的类型别名和 using 声明?  

 类型别名与using都是为了提高代码的可读性。

有两种方法可以定义类型别名

  1. 一种是使用关键字typedef起别名
  2. 使用别名声明来定义类型的别名,即使用using.

typedef

关键字typedef作为声明语句中的基本数据类型的一部分出现。含有typedef的声明语句定义的不再是变量而是类型别名。和以前的声明语句一样,这里的声明符也可以包含类型修饰,从而也能由基本数据类型构造出复合类型来。

类型别名允许我们为已存在的类型创建一个新的名称。这在处理复杂的类型表达式时特别有用,可以使代码更清晰、更易于理解。

typedef的用法包括:定义一种类型的别名;用于struct声明;用来定义与平台无关的类型;用于回调函数;为复杂的声明定义一个新的简单的别名。

typedef是定义了一种类型的新别名,不同于宏,并不是简单的字符串替换。

过度使用:虽然类型别名可以提高代码的可读性,但过度使用可能会导致代码混乱,特别是当别名含义不明确时

// 使用typedef进行类型别名定义
typedef int Integer;
Integer a = 10; // 等价于 int a = 10;

using

C++11中用关键字using作为别名声明的开始,其后紧跟别名和等号,其作用是把等号左侧的名字规定成等号右侧类型的别名。

using声明不仅用于类型别名,还可以用来引入命名空间中的标识符,或者明确指定类成员的访问方式。

using int Interger
Interger b=20//int b=20

使用typedef定义的别名和使用using定义的别名在语义上是等效的。 唯一的区别是typedef在模板中有一定的局限性,而using没有。

注意事项:

  • 具体引入:尽量使用using std::cout;这样的具体引入,而不是using namespace std;
  • 局部作用域:如果必须使用using namespace,将其限制在局部作用域内。

using namespace std;

#include<iostream>
using namespace std;
int main(){int a;cin>>a;cout<<a;
}
#include<iostream>
int main(){int a;std::cin>>a;std::cout<<a;
}

http://www.lryc.cn/news/491172.html

相关文章:

  • 从零开始学习 sg200x 多核开发之 camera-sensor 添加与测试
  • 前端三剑客(二):CSS
  • 国土变更调查拓扑错误自动化修复工具的研究
  • 深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录
  • Linux应用编程(C语言编译过程)
  • ssm实战项目──哈米音乐(二)
  • Python 获取微博用户信息及作品(完整版)
  • Flink学习连载第二篇-使用flink编写WordCount(多种情况演示)
  • 拉格朗日乘子(Lagrange Multiplier)是数学分析中用于解决带有约束条件的优化问题的一种重要方法,特别是SVM
  • 鸿蒙征文|鸿蒙心路旅程:始于杭研所集训营,升华于横店
  • c语言数据结构与算法--简单实现线性表(顺序表+链表)的插入与删除
  • MySQL底层概述—1.InnoDB内存结构
  • MySQL:DATEDIFF()计算两个日期天数之差
  • Linux 编译Ubuntu24内核
  • Android系统中init进程、zygote进程和SystemServer进程简单学习总结
  • Flask 基于wsgi源码启动流程
  • leetcode代码 50道答案
  • Centos-stream 9,10 add repo
  • 【隐私计算大模型】联邦深度学习之拆分学习Split learning原理及安全风险、应对措施以及在大模型联合训练中的应用案例
  • DataWhale—PumpkinBook(TASK05决策树)
  • elasticsearch7.10.2集群部署带认证
  • Java基础-I/O流
  • 全面解析多种mfc140u.dll丢失的解决方法,五种方法详细解决
  • 详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案
  • InfluxDB时序数据库笔记(一)
  • Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器
  • 2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析
  • Linux 正则表达式(basic and extened)
  • GB 35114-2017 学习笔记(规避版权阉割版)
  • YOLO-FaceV2: A Scale and Occlusion Aware Face Detector