C++基础 class、struct、union详细

C++基础 class、struct、union详细攻略

1. class

在C++中,class是一种构造用户定义的数据类型的方式。class是C++的一个重要特性,是面向对象编程的基础。class可以定义一个包含数据和函数的完整类型。可以在其中定义成员变量和成员函数,也可以使用访问限制符定义共有成员和私有成员。

C++中,使用class定义一个类时,可以省略访问限制符,默认是private。访问限制符包括public、protected和private。与struct不同的是,class的默认访问控制是“private”,而struct的默认访问控制是“public”。

以下是一个使用class定义一个类的示例:

class Person {
private:
    string name;
    int age;

public:
    void setName(string name) { this->name = name; }
    void setAge(int age) { this->age = age; }
    string getName() { return this->name; }
    int getAge() { return this->age; }
};

以上示例定义了一个名为Person的类,它有姓名和年龄两个私有成员变量和四个公有成员函数。

2. struct

struct是C++中的另一种构造用户定义的数据类型的方式。与class类似,struct也可以定义包含数据和函数的完整类型。可以在其中定义成员变量和成员函数,也可以使用访问限制符定义共有成员和私有成员。

与class不同的是,struct的默认访问控制是public,因此,struct中定义的所有成员默认都是公有的。虽然两种方式都可以定义类,但一般来说,struct更适合仅仅包含数据的对象,而class更适合需要封装数据和函数的对象。

以下是一个使用struct定义一个类的示例:

struct Point {
    double x;
    double y;

    void print() {
        cout << "x: " << x << ", y: " << y << endl;
    }
};

以上示例定义了一个名为Point的结构体,它有私有成员变量x和y和一个公有成员函数print()。

3. union

union是C++中的一种特殊的复合数据类型,同样可以定义包含数据的完整类型。在C++中,union的所有成员共享同一块内存空间,并且可以在不同的时间访问同一块内存。这使得union的大小等于其中最大的成员大小。通常,union用于节省空间,因为程序中只需要使用其中的一个成员。

以下是一个使用union定义一个类的示例:

union Number {
    int i;
    float f;
    double d;

    Number() {}
};

以上示例定义了一个名为Number的联合体,它有三个成员变量(int i,float f和double d)。由于union的成员变量是共享同一块内存空间,因此使用一个构造函数来给成员变量赋初值并不合适。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++基础 class、struct、union详细 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • 直接双击启动tomcat中的startup.bat闪退原因及解决方法

    标题:直接双击启动Tomcat中的startup.bat闪退原因及解决方法 问题描述 在启动Tomcat时,双击startup.bat文件闪退,无法启动Tomcat服务器。 原因分析 系统环境问题:可能出现了环境变量配置不正确或其他设置问题,导致Tomcat无法正确运行,进而出现闪退现象。 软件问题:可能Tomcat本身存在缺少特定运行环境或存在一些问题,需…

    other 2023年6月27日
    00
  • AtCoder Beginner Contest 146解题报告

    AtCoder Beginner Contest 146解题报告 最近,AtCoder Beginner Contest 146(以下简称ABC 146)已经结束了,本文的目的是回顾这次比赛,分析各道题目及其解法,帮助读者更好地理解比赛。 比赛总体情况 ABC 146是一场循环赛,共有六道题目。根据官网数据,本次比赛共有2433名选手参赛,其中AC人数最多的…

    其他 2023年3月28日
    00
  • php之50个开源项目

    PHP之50个开源项目 PHP是一种广泛应用于Web开发领域的脚本语言,其开源和封装的能力使得它成为了许多商业应用的选择。在这篇文章中,我们将会介绍50个优秀的开源PHP框架、工具和库,这些项目有助于Web开发的复杂性和困难,并为开发人员提供更好的工作效率和代码复用性。 1. Laravel Laravel是当今最流行的PHP框架之一,它允许开发人员使用简单…

    其他 2023年3月29日
    00
  • myeclipse2017破解安装教程+开发环境部署(jdk+tomcat)

    MyEclipse 2017 破解安装教程+开发环境部署(JDK + Tomcat) MyEclipse 是一款基于 Eclipse 进行扩展开发的企业级 Java 开发工具,主要用于开发 J2EE Web 应用程序。MyEclipse 2017 是最新版本,具有更快的性能和更多的功能,这里提供 MyEclipse 2017 的破解安装教程和开发环境部署方法…

    其他 2023年3月29日
    00
  • 深入Android HandlerThread 使用及其源码完全解析

    以下是关于深入Android HandlerThread使用及其源码完全解析的完整攻略: 深入Android HandlerThread 使用及其源码完全解析 什么是HandlerThread HandlerThread是Android中的一个线程类,它继承自Thread类,并且内部封装了一个Looper和一个Handler,可以方便地在后台线程中执行任务,…

    other 2023年10月15日
    00
  • mysql中andor查询的优先级

    MySQL中AND/OR查询的优先级 在MySQL中,AND和OR是两个用于连接查询条件的关键字,但是在使用它们时却需要注意它们的优先级,不然就可能会得到不正确的查询结果。 优先级规则 在MySQL中AND的优先级要高于OR,这就意味着在多个AND和OR连用时,AND会先被执行,而OR则会在AND执行完之后才会被执行。 例如,以下查询语句: SELECT *…

    其他 2023年3月28日
    00
  • Swift调用Objective-C代码

    Sure! 对于Swift调用Objective-C代码,主要涉及到以下几个步骤: 创建Objective-C代码 创建Swift文件,并确保Bridge Header文件正确引入 在Swift文件中调用Objective-C代码 下面我们分步骤进行详细探讨: 创建Objective-C代码 首先我们需要创建一个Objective-C代码文件,在里面编写我们…

    other 2023年6月26日
    00
  • java读取txt文件的方法

    以下是详细讲解“java读取txt文件的方法的完整攻略,过程中至少包含两条示例说明”的Markdown格式文本: Java读取txt文件的方法攻略 Java是一种流行的编程语言,可以用于读取和处理文本文件。本攻略将介绍Java读取txt文件的方法,包括基本语法、常用API和两个示例说明。 基本语法 Java读取txt文件的基本语法如下: import jav…

    other 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部