在类设计器中使用 C++ 代码其中类和匿名类

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

  • 类(与托管类形状类似,只不过它可以具有多重继承关系)

  • 匿名类(显示类视图为匿名类型生成的名称)

  • 类设计器中的 C++ 类

    类设计器支持 C++ 类,直观显示本机 C++ 类的方式与直观显示 Visual Basic 和 C# 类形状时大致相同,不同之处在于 C++ 类可以有多个继承关系 。 可以展开类形状来显示类中的更多字段和方法,也可以折叠类形状来节省空间。

     备注

    类设计器不支持联合(一种特殊类型的类,仅分配联合的最大数据成员所需的内存量) 。

    简单继承

    如果将存在单类继承关系的多个类拖到类图上,它们将会通过箭头相连。 箭头指向基类的方向。 例如,如果类图中有以下类,这两个类将会通过箭头相连,箭头从 B 指向 A:

    C++复制

    class A {};
    class B : A {};
    

    也可以只将类 B 拖到类图中,右键单击 B 的类形状,然后单击“显示基类” 。 这样可以显示它的基类 A。

    多重继承

    类设计器支持直观显示多类继承关系 。 当派生类有多个基类的特性时,就会用到多重继承。 下面的示例展示了多重继承:

    C++复制

    class Bird {};
    class Swimmer {};
    class Penguin : public Bird, public Swimmer {};
    

    如果将存在多类继承关系的多个类拖到类图上,它们将会通过箭头相连。 箭头指向基类的方向。

    右键单击类形状,然后单击“显示基类” ,可以显示选定类的基类。

     备注

    C++ 代码不支持“显示派生类” 命令。 可以转到类视图,依次展开类型节点和“Derived Types”子文件夹,然后将这些类型拖到类图上,即可显示派生类 。

    有关多类继承的详细信息,请参阅多重继承和多个基类。

    抽象类

    类设计器支持抽象类(亦称为“抽象基类”) 。 这些是永不实例化,但可从中派生其他类的类。 以本文前面“多重继承”部分中的示例为例,可以将 Bird 类实例化成各个单独的对象,如下所示:

    C++复制

    int main()
    {Bird sparrow;Bird crow;Bird eagle;
    }
    

    不过,你可能不打算将 Swimmer 类实例化成各个单独的对象。 可能只打算从它派生其他类型的动物类,例如,PenguinWhale 和 Fish。 在这种情况下,需要将 Swimmer 类声明为抽象基类。

    若要将类声明为抽象类,可以使用 abstract 关键字。 标记为 abstract 或抽象类中包含的成员是虚成员,必须由派生自抽象类的类实现。

    C++复制

    class Swimmer abstract
    {virtual void swim();void dive();
    };
    

    此外,也可以通过添加至少一个纯虚函数,将类声明为抽象类:

    C++复制

    class Swimmer
    {virtual void swim() = 0;void dive();
    };
    

    在类图中显示这些声明时,类名 Swimmer 及其纯虚函数 swim 会连同标注“抽象类” 一起在抽象类形状中以斜体显示。 请注意,抽象类类型形状与常规类类型形状大致相同,不同之处在于抽象类类型形状的边框是虚线。

    派生自抽象基类的类必须替代基类中的每个纯虚函数,否则无法实例化派生类。 比方说,如果 Fish 类派生自 Swimmer 类,Fish 必须替代 swim 方法:

    C++复制

    class Fish : public Swimmer
    {void swim(int speed);
    };int main()
    {Fish guppy;
    }
    

    在类图中显示此代码时,类图会绘制一条从 Fish 到 Swimmer 的继承线。

    匿名类

    类设计器支持匿名类 。 匿名类类型是指未使用标识符声明的类。 匿名类不能有构造函数或析构函数,不能作为自变量传递给函数,也不能作为返回值从函数返回。 匿名类可用于将类名替换为 typedef 名称,如以下示例所示:

    C++复制

    typedef struct
    {unsigned x;unsigned y;
    } POINT;
    

    结构也可以是匿名的。 类设计器显示匿名类和结构的方式与显示各自类型的方式相同 。 虽然可以声明并显示匿名类和结构,但类设计器不会使用你指定的标记名称 。 而是使用类视图生成的名称。 类或结构作为 __unnamed 元素显示在类视图和类设计器中 。

    有关匿名类的详细信息,请参阅匿名类类型。

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

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

相关文章

如何在Java中实现单例设计模式?

在 Java 中实现单例设计模式主要有几种方式,每种方式都有其适用场景及优缺点。单例模式的目的是确保一个类只有一个实例,并提供一个全局访问点。以下是一些常见的实现方法: 懒汉式(Lazy Initialization) 该模式只有在…

blender导出gltf模型混乱

最近用户给了几个blender文件,在blender打开是这样的: 我导出成gltf候,在本地打开时,底部发生了改变: 可以看出来,底部由原来的类型box变为了两个平面,后来我查了下blender里的属性设置&#xf…

Hive的库操作

1.创建数据库 CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name --DATABASE 和 SCHEMA 的使用是一样的,CREATE DATABASE 是(HIVE-675)增加的.(尽量使用database).[COMMENT database_comment] --提示性的信息[LOCATION hdfs_pat…

邦芒贴士:在职场中做人再老实要记住这4个心眼

以前我们常常被教育说,做人一定要真诚实在,只有你真心对待别人,才能够赢得别人的真心,才能够交到朋友。但是混职场和交朋友并不一样。 ​在职场中,你是来工作赚钱的,交朋友是次要,你得在工作中生…

[0509] StackOverflowExchange 的关系和时间线 | Godaddy DNS API 加入用户限制

目录 StackExchange & StackOverflow 的关系和时间线Godaddy DNS API 加入用户限制 StackExchange & StackOverflow 的关系和时间线 为方便描述,将使用如下简称: Stack Overflow → SOStack Exchange → SE 关系: 先有 SO,基于 S…

java中的oop(二)、方法、对象数组、重载、参数.

public class Person {/*成员变量存储在堆中*/String name;int age;public void sleep() {String hour "18小时"; //局部变量;存储在栈中;System.out.println("he is sleepping!");}public void setAge(int age) { //局部变量--形…

Python | Leetcode Python题解之第75题颜色分类

题目&#xff1a; 题解&#xff1a; class Solution:def sortColors(self, nums: List[int]) -> None:n len(nums)p0, p2 0, n - 1i 0while i < p2:while i < p2 and nums[i] 2:nums[i], nums[p2] nums[p2], nums[i]p2 - 1if nums[i] 0:nums[i], nums[p0] num…

跟小米学爆品

#小米爆品# 【课程背景】 小米手机世界第一、小米充电宝世界第一、平衡车世界第一、小米空气净化器世界第一。 小米做出很多世界第一&#xff1b;小米为什么做什么产品都能快速成功&#xff1f;小米打造爆品成功的秘诀是 什么&#xff1f; 长期给小米生态链企业和小米孵化器&a…

指针与const

指针与const 定义的对象中加上const 关键字&#xff0c; 表达一经初始化就不可修改的特性const 对象必须初始化 指针与constconst char* pc;指向常量的指针pc 初始化可以指向常量字符串&#xff0c; 内容不可以修改&#xff0c;但是指针指向可以修改char* const cp;指向char …

ESD静电问题 | 案例

【转自微信公众号&#xff1a;EMC容冠电磁】

相亲系统功能介绍

相亲系统是一种旨在帮助单身人士寻找合适伴侣的平台&#xff0c;其主要功能通常包括以下几个方面&#xff1a; 实名认证&#xff1a;为了确保双方的权益保障&#xff0c;用户必须进行实名认证后才能使用该系统。这有助于增加系统的安全性和可信度。偏好选择&#xff1a;用户可…

【Python】io_backend参数简介

在许多编程框架和库中&#xff0c;尤其是涉及到数据处理和深度学习的应用程序中&#xff0c;io_backend 参数常用于配置输入/输出&#xff08;I/O&#xff09;操作的后端类型和其他相关设置。这个参数通常通过字典&#xff08;dict&#xff09;的形式提供&#xff0c;使得可以灵…

网络安全之ACL

ACL&#xff1a;访问控制列表——控制列表&#xff08;策略列表&#xff09;&#xff0c;是一个控制工具。 功能&#xff1a;&#xff01;、定义感兴趣路由&#xff08;控制层面&#xff09;。2、定义感兴趣流量&#xff08;数据层面&#xff09;。 例如&#xff1a; 假设在该…

数字孪生涉及到的前沿技术:虚拟现实 人工智能 区块链 边缘计算。

数字孪生是各类技术的综合应用&#xff0c;除了咱们常见的传感器、数据采集、清洗、传输、建模、可视化技术外&#xff0c;还有还有一些前沿技术&#xff0c;会让数字孪生更加强大和智能&#xff0c;本文介绍几个。 虚拟现实&#xff08;Virtual Reality&#xff0c;VR&#x…

京东运营大基本功:店铺八大数据分析 | 店铺所有商品API采集接口

数据分析是京东运营的基本功&#xff0c;想要做好京东运营&#xff0c;那么你就一定要掌握数据分析的技能&#xff0c;数据分析我们需要采集大量数据&#xff0c;这时候我们就要京东电商数据采集API接口&#xff0c;今天就重点来给大家讲讲关于数据分析的道与术。 01 一、分析…

抖音小店怎么找达人带货的?分享几个成功率超高的沟通话术!

哈喽~我是电商月月 做抖音小店&#xff0c;特别是无货源的商家想要更多的流量&#xff0c;必定会尝试直播卖货&#xff0c;不会自己直播卖货&#xff0c;就会开通精选联盟&#xff0c;在里面找达人合作 那精选联盟到底是怎样找达人带货的呢&#xff1f; 有的达人打招呼了根本…

五、Redis五种常用数据结构-SET

Redis的Set结构存储的数据和Java中的HashSet类似&#xff0c;都是无序且不重复的。其底层的数据结构有两种&#xff0c;一是当value为整数时&#xff0c;且数据量不大时采用intset来存储。其他情况使用dict字典存储。集合中最多存储232-1(40多亿)个数据。 1、常用命令 sadd k…

探索深度学习的奥秘:从入门到进阶

一、引言 在当今这个信息爆炸的时代&#xff0c;人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;已经不再是遥不可及的科幻概念&#xff0c;而是逐渐成为我们生活的一部分。其中&#xff0c;深度学习&#xff08;Deep Learning&#xff09;作为机器学…

游戏行业干货分享 | 游戏行业非技术岗盘点

在游戏行业&#xff0c;除了技术开发岗位外&#xff0c;还有许多非技术岗位对游戏的成功至关重要。以下是一些游戏行业非技术岗位的盘点&#xff0c;以及它们各自的职责和对游戏项目的贡献&#xff1a; 以游戏上线为目的&#xff0c;从游戏研发到游戏发行会有如下岗位配置 这里…

【AIGC】重塑未来的科技巨轮

AIGC&#xff1a;重塑未来的科技巨轮 一、AIGC&#xff1a;从历史走来&#xff0c;向未来进发二、AIGC的三项核心技术三、AIGC的应用与未来 在当今科技飞速发展的时代&#xff0c;AI&#xff08;人工智能&#xff09;已经成为了一个无法忽视的热词。而与其紧密相连的AIGC&#…