首页 > 其他分享 >6. 结构体和自定义类型

6. 结构体和自定义类型

时间:2024-01-24 21:59:16浏览次数:40  
标签:struct 自定义 Point int void 示例 类型 结构

结构体与自定义类型

  • 结构体:将相关的数据放置在一起
    • 可以通过点操作符( . )访问内部元素

    • 可以作为函数的输入参数或返回类型

      一个简单的代码示例:

      // self-defined data type -- struct
      #include <iostream>
      
      struct Point {
        int x;
        int y;
      }; // Point
      
      void printPoint(Point p) { 
        std::cout << "x: " << p.x << " y: " << p.y << "\n"; 
      }
      
      Point handlePoint(Point p) {
        p.x = p.x + 1;
        p.y = p.y + 2;
        return p;
      }
      
      int main(void) {
        Point p;
        p.x = 255;
        p.y = 0;
        printPoint(p);
        auto new_point = handlePoint(p);
        std::cout << "x: " << new_point.x << " y: " << new_point.y << "\n";
        return 0;
      }
      

      编译运行结果:

      > g++ -Wall -g struct.cpp -o struct
      > ./struct
      x: 255 y: 0
      
    • 可以引入成员函数,更好地表示函数与数据的相关性

      示例代码:

      // self-defined data type -- struct
      #include <iostream>
      
      struct Point {
        int x;
        int y;
        void IncP() {	// member func: incP
          x = x + 1;
          y = y + 1;                                                   
        }
      }; // Point
      
      void printPoint(Point p) { 
        std::cout << "x: " << p.x << " y: " << p.y << "\n"; 
      }
      
      int main(void) {
        Point p;
        p.x = 255;
        p.y = 0;
        printPoint(p);
        
        p.incP();
        printPoint(p);
        return 0;
      }
      

标签:struct,自定义,Point,int,void,示例,类型,结构
From: https://www.cnblogs.com/kobayashilin1/p/17985923

相关文章

  • OCaml入门-类型
    OCaml有如下基本类型OCamltypeRangeint63-bitsignedinton64-bitprocessors,or31-bitsignedinton32-bitprocessorsfloatIEEEdouble-precisionfloatingpoint,equivalenttoC'sdoubleboolAboolean,writteneither......
  • Linux基础46 ansible概述, 结构, 安装与配置文件, 主机清单配置
    Ansible学习一、Ansible概述1.什么是ansible?Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。2.自动化工具1.puppet学习难,安装ruby环境难,没......
  • Oracle数据类型的简单学习之一
    Oracle数据类型的简单学习之一背景因为信创安可替代的发展有很多项目提到了数据库切换到国产数据库的要求.一般情况是要求从Oracle/SQLServer迁移到国产的:达梦/瀚高/人大金仓/南大通用等数据库.但是因为Oracle作为数据库领域No.1的存在他对SQL的规范标准支持的并不......
  • 六个软件设计与体系结构案例分析
    本文提供一些软件设计与体系结构案例分析参考报告,以精准扶贫管理系统,船舶信息分析平台,铁路票务系统,银行业务与安全系统等实例,进行架构建模分析或者架构演进分析。资源分享链接:百度网盘链接:https://pan.baidu.com/s/1nzlfFrhEoZVCrbGT4N3_0A?pwd=jyn8提取码:jyn81.六个案例分析......
  • 树结构及前中后续遍历
    publicclassTree{publicstaticvoidmain(String[]args){Treeroot=newTree(50);Tree.insert(root,30);Tree.insert(root,60);Tree.insert(root,70);Tree.insert(root,100);Tree.insert(root,80);......
  • 实现流程化办公,快看看自定义拖拽表单!
    一直以来,流程化办公是很多企业的梦想和追求,因为可以帮助企业提高办公效率,降低人工成本,高效利用企业内部数据,做好办公协作工作。自定义拖拽表单优势明显、操作简单、功能灵活、可视化设计,是理想的流程化办公助力利器。众所周知,随着办公流程管理的规范化和体系化发展,各部门之间的协......
  • js 自定义数据属性
    HTML5允许给元素指定非标准的属性,但要使用前缀data-以便告诉浏览器,这些属性既不包含与渲染有关的信息,也不包含元素的语义信息。除了前缀,自定义属性对命名是没有限制的,data-后面跟什么都可以。下面是一个例子:<divid="myDiv"data-appId="12345"data-myname="Nicholas"></div>......
  • Uniapp微信小程序:轻松实现自定义导航栏,提升用户体验
    1、引言当涉及微信小程序的界面设计时,我们常常会发现自带的导航栏功能相对简单,仅限于显示当前页面的标题。然而,在实际开发过程中,我们往往需要更多的自由度和个性化,以满足用户体验的需求。因此,自定义导航栏成为必然选择。通过自定义导航栏,我们可以赋予小程序更多的设计灵活性和交互......
  • 一文读懂工业交换机的组成结构
    工业交换机的具体组成结构主要包括以下几个部分:1.芯片交换器:芯片交换器是工业交换机最重要的组件,其职责是进行数据包的转发和处理,并支持各种网络协议和数据通信方式。2.端口是实现工业交换机与外部设备进行数据交换的连接接口。端口通常有多种类型,例如RJ45口和光口等,可以满足各种设......
  • 结构化命令case和for、while循环
    1、case流程控制语句case是一种流程控制语句,通常用于根据不同的条件值执行不同的代码块。它的语法如下:caseexpressionin pattern1)    #在匹配pattern1时执行的代码   ;; pattern2)    #在匹配pattern2时执行的代码   ......