#include <iostream>using namespace std;class A
{
#define MAX 5                       // 宏定义是全局的,因为在预编译时就替换掉了public:typedef unsigned long ULONG;   // 作用域局限在这个类中, 且有修饰符private:int _n;ULONG _age;public:A(int n, ULONG age);void display();
};A::A(int n, ULONG age)
{_n = n;_age = age;
}void A::display()
{cout << _n << endl;cout << _age << endl;cout << MAX << endl;
}int main()
{
//  typedef unsigned long ULONG;    // 作用域在main()中A::ULONG na;                  // na的类型是A::ULONG, 并非ULONGA a(3, 20);a.display();cout << MAX << endl;na = 25;cout << na << endl;return 0;
}/*运行情况:D:\Desktop\test>makeg++ -o a.exe a2.cppD:\Desktop\test>a3205525
*/

typedef和#define的作用域问题相关推荐

  1. typedef和define的作用域

    typedef: 如果放在所有函数之外,它的作用域就是从它定义开始直到文件尾: 如果放在某个函数内,定义域就是从定义开始直到该函数结尾: #define: 不管是在某个函数内,还是在所有函数之外,作用 ...

  2. typedef和define具体的详细区别

    1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如: #define PI 3.141 ...

  3. typedef和define的详细区别

    typedef是一种在计算机编程语言中用来声明自定义数据类型,配合各种原有数据类型来达到简化编程的目的的类型定义关键字. #define是预处理指令. 1. 首先,二者执行时间不同 关键字typede ...

  4. c语言错误c4430,C 语言 typedef 与 #define 比较

    Alvin typedef 与 #define 的区别 1. 执行时间不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定 ...

  5. C语言-typedef与#define的区别

    目录 1 typedef 1.1 将复杂的声明简单化 1.2 定义平台无关的类型 1.3 与struct的结合使用 1.4 typedef使用公式 2 typedef与#define的区别 2.1 执 ...

  6. typedef和define一些问题

    1. 四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针 ...

  7. C语言 typedef 和 define 区别 - C语言零基础入门教程

    目录 一.typedef 简介 1.typedef 简化复杂的类型声明 A.定义普通变量 B.定义函数指针 C.定义结构体 2.定义与平台无关的类型 二.define 简介 三.typedef 和 d ...

  8. C++中typedef和define的区别

    typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...

  9. typedef与#define宏区别

    先让我们了解一下typedef的功能,typedef简单来说就是给类型取一个别名: 如 typedef int New   那么int就有一个别名叫New了,以后size就和int这个类型一共用法了. ...

最新文章

  1. php 小技巧总结,PHP学习的技巧是什么 PHP学习的技巧和学习的要素总结
  2. NR 5G NG-RAN 架 构
  3. 1.2 数学符号-深度学习第五课《序列模型》-Stanford吴恩达教授
  4. 如何用“区块链+稳定币”技术来提升资产证券化市场运作效率
  5. JavaScript --- [学习笔记]观察者模式 理解对象 工厂模式 构造函数模式
  6. python获取手机通知栏消息_Python编写简单的通知栏脚本启动工具
  7. 数据结构2 - 线性表
  8. 智能会议系统(35)---深入浅出sip协议
  9. mysql fulltext类型_mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍(转)
  10. Linux之dd命令使用
  11. SQL语句学习指南 - 教程书籍
  12. 华为IPD你学不会(转)
  13. 解决win10删除文件时找不到该项目的问题
  14. 修改最新版谷歌浏览器编码方式
  15. hive删除EXTERNAL外表
  16. 苹果开发者账号个人级升级为公司级
  17. [水晶报表]如何设置水晶报表(crystal reports)的字段自动换行
  18. 安卓 sdk 离线包_百度离线ocr识别开发sdk包
  19. 数学建模overleaf模板_数学建模从入门到精通必备资料,大神经验助你赢战9月数模国赛!...
  20. oracle 审计设置,oracle数据库审计设置

热门文章

  1. dataguru北京线下沙龙-第二部 《Oracle 索引优化思路--案例分享 -- 刘盛》
  2. Linux PCI网卡驱动分析
  3. 因果关系和相关关系 大数据_数据科学中的相关性与因果关系
  4. bigquery 教程_bigquery挑战实验室教程从数据中获取见解
  5. 1859. 将句子排序
  6. Java 到底有没有析构函数呢?
  7. leetcode1343. 大小为 K 且平均值大于等于阈值的子数组数目(队列)
  8. bi可视化工具_适用于您的BI解决方案的最佳数据可视化和Web报告工具
  9. android-开源项目_我如何摆脱对开源的恐惧,并开始了自己的项目-以及如何做到。...
  10. cake php_如何(以及为什么)在Swinject中使用Cake Pattern