zoukankan      html  css  js  c++  java
  • 结构体

    关于求直角三角形斜边长的问题:

    通常,x1和y1在语义上属于一个整体 (x1,y1),而x2和y2属于另一个整体(x2,y2),代表两个点的坐标。那么能否设计一个函数,其参数是明显的两个点,而不是4个double型的坐标值呢?

    struct Point{ double x, y; };

    double dist(struct Point a, struct Point b) {

      return hypot(a.x-b.x, a.y-b.y); }

    这里出现了一个新内容。上述代码中定义了一个称为Point的结构体,包含两个域: double型的x和y。

    这样用起来有些不合习惯:所有用到Point的地方都得写一个struct。有一个方法可以避 开这些struct,让结构体用起来和int、double这样的“原生”类型更接近:

    typedef struct{ double x, y; }Point;

    double dist(Point a, Point b) {

       return hypot(a.x-b.x, a.y-b.y); }

    代码中虽然没少几个字符,但是看上去清爽多了!

    提示:为了使用方便,往往用“typedef struct { 域定义; }类型名;”的方式定义一个 新类型名。这样,就可以像原生数据类型一样使用这个自定义类型。

  • 相关阅读:
    单例设计模式
    使用JfreeChart生成统计图
    session的生命周期
    json
    struts2 ognl标签使用
    集合小结
    多线程
    内部类和匿名内部类
    模版方法设计模式
    mac中yeoman构建你的项目
  • 原文地址:https://www.cnblogs.com/LOW-ctfer/p/10387535.html
Copyright © 2011-2022 走看看