首页 > 编程语言 >C++中用户自定义数据类型

C++中用户自定义数据类型

时间:2024-03-25 18:33:01浏览次数:17  
标签:自定义 成员 float 数据类型 C++ class 类型 public

在C++中,用户自定义数据类型通常指的是通过struct、class、enum和typedef关键字定义的类型。这些自定义类型可以包含各种成员,包括基本数据类型、其他自定义类型、成员函数(对于class)、访问修饰符等。下面是这些自定义数据类型可以包含的组件的概述:

结构体(struct)

结构体是一种用户定义的数据类型,它可以包含多个不同类型的成员。结构体默认的所有成员都是公共(public)访问权限的,但在C++11及以后的版本中,可以使用访问修饰符来改变默认行为。

struct Point {
    float x;
    float y;
    // 构造函数
    Point(float x = 0.0f, float y = 0.0f) : x(x), y(y) {}
};

类(class)

类是C++中的核心概念,它允许定义更复杂的数据类型,可以包含数据成员(属性)和成员函数(方法)。类可以有继承、多态和封装的特性。

class Circle {
private:
    float radius;
    Point center;

public:
    // 构造函数
    Circle(float r, float x, float y) : radius(r), center(x, y) {}

    // 成员函数
    float area() const { return 3.14159f * radius * radius; }
};

枚举类型(enum)

枚举类型是一种包含一组命名的整数常量的用户定义类型。枚举类型可以提高代码的可读性和维护性。

enum Color {
    RED,
    GREEN,
    BLUE
};

类型定义(typedef)

typedef关键字用于为现有类型创建一个新的名称。这可以使类型名称更简短或更具描述性。

typedef unsigned long ulong;

模板类型

模板是C++中的一种强大机制,它允许定义泛型类和函数,可以处理不同类型的数据。

template <typename T>
class Vector {
    T x, y;

public:
    Vector(T xVal, T yVal) : x(xVal), y(yVal) {}
    // ...
};

成员函数

在class中,可以定义成员函数来执行操作或访问数据成员。成员函数可以有访问修饰符来控制其可见性。

class MyClass {
public:
    void myFunction() {
        // 函数体
    }
};

访问修饰符

class和struct可以使用public、protected和private访问修饰符来控制成员的访问级别。

继承

类可以继承另一个类的属性和方法,这允许代码重用和多态性。

class Base {
public:
    void baseFunction() {}
};

class Derived : public Base {
public:
    void derivedFunction() {}
};

标签:自定义,成员,float,数据类型,C++,class,类型,public
From: https://blog.csdn.net/MATLAB_xiaobai2/article/details/137021813

相关文章

  • vue自定义指令及常用自定义指令#记录
    一、什么是自定义指令在vue官方文档中是这样描述的,自定义指令主要是为了重用涉及普通元素的底层DOM访问的逻辑。自定义指令主要分为全局自定义指令和局部自定义指令。二、自定义指令相关参数Vue2.X钩子函数:bind:自定义指令绑定到DOM后调用。只调用一次,指令第一次绑定到元素......
  • 实现自定义队列
    publicclassMyQueue{privateint[]array;privateintfront;privateintrear;publicMyQueue(intcapacity){this.array=newint[capacity];}publicvoidenQueue(intelement){if((rear+1)%array.length==front)......
  • 自定义LocaleResolver 未生效
    问题原因自定义的LocaleResolver没有注入到Spring中解决方案检查是否通过@Bean将其注入到Spring中,如果没有就加上@Bean注解检查是否指定了Bean的名称,如果没有则检查方法名称。判断名称是否为localeResolverps成功注入图示......
  • C# WPF自定义消息弹窗
    我用的是CaliburnMicro框架,自建框架或者使用其它框架的可自行替换绑定部分即可。效果图: 消息窗体View代码:<Windowx:Class="WpfAppTest.Views.MsgBoxView"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.mi......
  • C++学习
    学习主线算法基础:https://www.acwing.com/activity/content/11/理解算法原理,完成模板题,熟练使用模版课外练习:针对特定主题,可以进行拓展练习爱思创题库:https://aisichuang.net/main/questionBank/questionBankhttps://leetcode.cn/leetbook/https://ac.nowcoder.co......
  • C++第五十六篇——VC获取显示器状态(捕获熄屏/亮屏)
    参考链接:https://blog.csdn.net/rocklee/article/details/76636253此篇文章实现C++可以获取屏幕亮灭的消息,程序在后台运行,不会有控制台窗口显示。第一步:新建一个控制台程序 第二步:编写屏幕亮灭的代码ScreenTest.cpp#include<windows.h>#include<iostream>usingname......
  • 【C++从0到1-黑马程序员】文件操作
    C++从0到1-黑马程序员课程学习笔记课程链接:61C++文件操作-文本文件-写文件_哔哩哔哩_bilibili程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放可以通过文件将数据持久化C++中对文件操作需要包含头文件 <fstream>文件类型分为两种:文本文件-文件以......
  • 【C++从0到1-黑马程序员】引用
     C++从0到1-黑马程序员课程学习笔记课程链接: 06C++中的引用-引用的基本语法_哔哩哔哩_bilibili1.引用的基本语法作用:给变量起别名语法:数据类型&别名=原名2.引用的注意事项1.引用必须有初始化    举个......
  • 这可能是国内Qt/C++界最受欢迎开源项目之一/5.8Kstar/持续迭代更新
    一、前言本项目大概在2020年开始的,大概在2022年重写了一遍,主要是分门别类存放。本项目主要是QWidget编写的一些开源的demo,支持Qt4、Qt5、Qt6,支持任意系统,预计会有100多个,一直持续更新完善,代码简洁易懂注释详细,每个都是独立项目,非常适合初学者,代码随意传播使用。不仅有界面UI相关,......
  • C++ Class
    this指针this指针是一个const指针,指向当前对象,通过this可以访问当前对象的所有成员,无论是protect/private/public。以下是一个示例:#include<iostream>classstu{public:voidsetA(intA);voidsetB(intB);voidprint();private:intA,......