6. 结构体和自定义类型
  YFWfQFHczcqM 2024年01月25日 33 0
C++

结构体与自定义类型

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

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

      一个简单的代码示例:

      // 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;
      }
      
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年01月25日 0

暂无评论

推荐阅读
  8Tw5Riv1mGFK   2024年05月01日   78   0   0 C++
  BYaHC1OPAeY4   2024年05月08日   56   0   0 C++
  yZdUbUDB8h5t   2024年05月05日   43   0   0 C++
  oXKBKZoQY2lx   2024年05月17日   57   0   0 C++
YFWfQFHczcqM
作者其他文章 更多