函数方法

本文深入解析了C++中方法与参数的传递机制,包括引用传递、返回值处理及调用方法的基本步骤。通过实例展示了如何创建对象、调用方法并接收返回值,以及错误处理机制的应用。

REPORT  Z_FUNCTIONAL_METHOD.
CLASS circle DEFINITION.
  PUBLIC SECTION.
    METHODs get_area IMPORTING VALUE(i_radiustype i             value指定参数传递形式默认是引用传递
                     RETURNING VALUE(r_sizeTYPE f.                         returning可以替代importing和exporting,这边替代的是exporting

  PRIVATE SECTION.
    CONSTANTS pi type VALUE '3.1415926'.
endclass.

CLASS circle IMPLEMENTATION.
  METHOD get_area.
    r_size i_radius ** * pi.
    ENDMETHOD.
  ENDCLASS.

  PARAMETERS radius TYPE i.
  DATA: o_circle TYPE REF TO circle,
        area TYPE f.

  START-OF-SELECTION.
  CREATE OBJECT o_circle.
  CALL METHOD o_circle->get_area
  EXPORTING i_radius radius
    RECEIVING r_size area.                      使用returning这边就应该用receiving关键字定义接受.
  WRITE: / area.
  area o_circle->get_arearadius ).          这种方法是函数方法,可以直接赋值,调用方法得到结果后直接赋给area变量
  WRITE: / area.

第二次看:

如果方法中定义了返回参数,可以这样调用

INUMBS = o_vehicle->accelerate( NUMB = 1 ).
numb是传入参数。
INUMBS相当于返回参数,当然只返回一个参数的时候才可以这样使用。
如果不是这样写的话就是原本的方式 如下:

  CALL METHOD o_vehicle->accelerate
    EXPORTING
      numb        = 1                   "传入值,可以是变量,如果是定义的时候关键字是Importing不是EXPORTING
    receiving                           
      rnumb       = INUMBS              "返回值,如果是方法定义的时候这边就是returning关键字而不是receiving 
    EXCEPTIONS
      MESSAGEERRO = 1
      others      = 2
          .
  IF sy-subrc <> 0.
   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

 

 

 

转载于:https://www.cnblogs.com/caizjian/p/3237301.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值