在类设计器中使用 C++ 代码其中模板类、结构、Enum、宏、Typedef

类设计器支持以下 C++ 代码元素 :

  • 模板类

  • 结构

  • Enum

  • 宏(显示宏的处理后视图)

  • Typedef

  • 模板类

    类设计器支持直观显示模板类 。 支持嵌套声明。 下表列出了一些典型声明。

    展开表

    Code 元素类设计器视图
    template <class T>

    class A {};
    A<T>

    模板类
    template <class T, class U>

    class A {};
    A<T, U>

    模板类
    template <class T, int i>

    class A {};
    A<T, i>

    模板类
    template <class T, template <class K> class U>

    class A {};
    A<T, U>

    模板类

    下表列出了一些分部专用化示例。

    展开表

    Code 元素类设计器视图
    template<class T, class U>

    class A {};
    A<T, U>

    模板类
    template<class T>

    class A<T, T> {};
    A<T, T>

    模板类
    template <class T>

    class A<T, int> {};
    A<T, int>

    模板类
    template <class T1, class T2>

    class A<T1*, T2*> {};
    A<T1*, T2*>

    模板类

    下表列出了一些分部专用化继承示例。

    展开表

    Code 元素类设计器视图
    template <class T, class U>

    class A {};

    template <class TC>

    class A<T, int> {};

    class B : A<int, float>

    {};

    class C : A<int, int>

    {};
    A<T, U>

    模板类

    B



    (指向类 A)

    C



    (指向类 A)

    下表列出了一些分部专用化模板函数示例。

    展开表

    Code 元素类设计器视图
    class A

    {

    template <class T, class U>

    void func(T a, U b);

    template <class T>

    void func(T a, int b);

    };
    A

    func<T, U>(+ 1 重载)
    template <class T1>

    class A {

    template <class T2>

    class B {};

    };

    template<> template<>

    class A<type>::B<type> {};
    A<T1>

    模板类

    B<T2>

    模板类

    (B 包含在类 A 中的“嵌套类型” 下)
    template <class T>

    class C {};

    class A : C<int> {};
    A



    -> C<int>

    C<T>

    模板类

    下表列出了一些模板继承示例。

    展开表

    Code 元素类设计器视图
    template <class T>

    class C {};

    template<>

    class C<int> {

    class B {};

    }

    class A : C<int>::B {};
    A



    ->B

    C<int>



    (B 包含在类 C 中的“嵌套类型” 下)

    C<T>

    模板类

    下表列出了一些规范专用化类连接示例。

    展开表

    Code 元素类设计器视图
    template <class T>

    class C {};

    template<>

    class C<int> {};

    class A : C<int> {};

    class D : C<float> {};
    A



    ->C<int>

    C<int>



    C<T>

    模板类

    D



    ->C<float>
    class B {

    template <class T>

    T min (const T &a, const T &b);

    };
    B

    min <T>

    类设计器中的 C++ 枚举

    类设计器支持 C++ enum 和域化的 enum class 类型。 下面是一个示例:

    C++复制

    enum CardSuit {Diamonds = 1,Hearts = 2,Clubs = 3,Spades = 4
    };// or...
    enum class CardSuit {Diamonds = 1,Hearts = 2,Clubs = 3,Spades = 4
    };
    

    类图中的 C++ 枚举形状的外观和工作原理与结构形状类似,只不过其标签显示为 Enum 或 Enum class,标签的颜色为粉色而不是蓝色,并且具有带颜色的边框左边和上边。 两种枚举形状和结构形状都具有方角。

    有关使用 enum 类型的更多信息,请参阅枚举。

    类设计器中的 C++ Typedef

    Typedef 语句可在某个名称和其基础类型之间创建一个或多个间接层。 “类设计器”支持使用关键字 typedef 声明的 C++ typedef 类型,例如:

    C++复制

    typedef class coord
    {void P(x,y);unsigned x;unsigned y;
    } COORD;
    

    然后你可以使用此类型来声明实例:

    COORD OriginPoint;

    类和结构形状

    在“类设计器”中,C++ typedef 具有 typedef 中所指定类型的形状。 如果源声明 typedef class,则形状具有圆角和标签“类”。 对于 typedef struct,形状具有方角和标签 Struct

    类和结构可在自身内声明嵌套的 typedef。 在“类设计器”中,类和结构形状可将嵌套的 typedef 声明显示为嵌套的形状。

    Typedef 形状支持右键单击菜单(关联菜单)中的“显示为关联”和“显示为集合关联”命令。

    类 typedef 示例

    C++复制

    class B {};
    typedef B MyB;
    

    C++ class typedef in Class Designer

    结构 typedef 示例

    C++复制

    typedef struct mystructtag
    {int   i;double f;
    } mystruct;
    

    C++ struct typedef in Class Designer

    未命名的 typedef

    虽然可以声明没有名称的 typedef,但“类设计器”不会使用指定的标记名称。 “类设计器”使用“类视图”生成的名称。 例如,以下声明有效,但它在类视图和类设计器中显示为名为 __unnamed 的对象 :

    C++复制

    typedef class coord
    {void P(x,y);unsigned x;unsigned y;
    };
    

     备注

    “类设计器”不显示其源类型为函数指针的 typedef。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681595.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue+element的表格(el-table)排班情况表(2024-05-09)

vueelement的表格&#xff08;el-table&#xff09;排班情况&#xff0c;增删查改等简单功能 代码&#xff1a; <template><!-- 表格 --><div class"sedules"><el-header><el-date-pickerv-model"monthValue2"type"month…

亚马逊是如何铺设多个IP账号实现销量大卖的?

一、针对亚马逊平台机制&#xff0c;如何转变思路&#xff1f; 众所周知&#xff0c;一个亚马逊卖家只能够开一个账号&#xff0c;一家店铺&#xff0c;这是亚马逊平台明确规定的。平台如此严格限定&#xff0c;为的就是保护卖家&#xff0c;防止卖家重复铺货销售相同的产品&a…

即将开幕,邀您共赴创新之旅“2024上海国际消费者科技及创新展览会”

备受期待的2024上海国际消费者科技及创新展览会&#xff08;以下简称“CTIS”&#xff09;即将于6月13日至15日亮相上海新国际博览中心N1-N3馆。 2024上海国际消费者科技及创新展览会总面积达40,000平方米&#xff0c;涵盖600余家展商&#xff0c;预计吸引40,000多位观众莅临现…

漫威争锋Marvel Rivals怎么搜索 锁区怎么搜 游戏搜不到怎么办

即将问世的《漫威争锋》&#xff08;Marvel Rivals&#xff09;作为一款万众期待的PvP射击游戏新星&#xff0c;荣耀携手漫威官方网站共同推出。定档5月11日清晨9时&#xff0c;封闭Alpha测试阶段将正式揭开序幕&#xff0c;持续时间长达十天之久。在此首轮测试窗口&#xff0c…

Fortinet的安全愿景SASO概述

FTNT SASE的独特方法&#xff0c;使其成为一家适应性极强的厂商&#xff0c;能够应对不断变化的网络和网络安全环境。FTNT开发了一种名为Secure Access Service Omni&#xff08;SASO&#xff09;的变体&#xff0c;以更准确地反映FTNT在融合网络和安全功能方面的实力。我们预计…

nginx 启动,查看,停止

nginx 启动&#xff0c;查看&#xff0c;停止 启动 start nginx 查看是否启动成功 tasklist | findstr nginx 停止 nginx -s stop 测试配置文件的语法是否有误 nginx -t 重启nginx nginx-s reload

AI时代:人工智能大模型引领科技创造新时代

目录 前言一. AI在国家战略中有着举足轻重的地位1.1 战略1.2 能源1.3 教育 二. AI在日常生活中扮演着重要角色2.1 医疗保健2.2 智能客服2.3 自动驾驶2.4 娱乐和媒体2.5 智能家居 三. AI的未来发展趋势 总结 前言 随着AI技术的进步&#xff0c;新一代的AI技术已经开始尝试摆脱依…

数据结构(十一)----图的应用

目录 一.最小生成树 1.Prim算法&#xff08;普里姆&#xff09; 2.Kruskal算法(克鲁斯卡尔): 二.最短路径&#xff08;BFS算法&#xff09; 1.单源最短路径 &#xff08;1&#xff09;BFS算法&#xff08;无权图&#xff09; &#xff08;2&#xff09;Dijkstra算法&…

Java八股文系列之四(JVM)

什么是Java虚拟机&#xff1f;为什么Java被称作是“平台无关的编程语言”&#xff1f; Java虚拟机是一个可以执行Java字节码的虚拟机进程。 Java 实现跨平台的主要原因在于它的编译和执行方式。Java 程序首先被编译成中间代码&#xff08;bytecode&#xff09;&#xff0c;然…

mysql等保测评2.0命令-三级

版本 Win默认安装位置 C:\Program Files\MySQL\MySQL Server 8.0\bin 版本&#xff1a;select version() from dual; 身份鉴别 a应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b; 1、SELEC…

Hexo博客重新部署与Git配置

由于电脑重装了一次&#xff0c;发现之前Hexo与NexT主题版本过于落后&#xff0c;重新部署了下。 1 Node.js与git安装 这一块安装就不赘述了。去两个官网找安装文件安装即可。 node.js git 打开git以后配置的几个关键命令行。 git config --global user.name "你的gi…

鸿蒙内核源码分析(gn应用篇) | gn语法及在鸿蒙的使用

gn是什么? gn 存在的意义是为了生成 ninja,如果熟悉前端开发,二者关系很像 Sass和CSS的关系. 为什么会有gn,说是有个叫even的谷歌负责构建系统的工程师在使用传统的makefile构建chrome时觉得太麻烦,不高效,所以设计了一套更简单,更高效新的构建工具gnninja,然后就被广泛的使用…