ABAP中的指针(类似于java中的指针)



谁能告诉我如何在ABAP OO中定义指针?在Java中,我对它没有问题。this.namethis.SomeMethod()

你可能在问所谓的自我引用。

在ABAP中可以使用关键字me

Java示例:this.someMethod();
ABAP示例:me->someMethod( ).

ABAP使用字段符号。它们的定义如下:FIELD-SYMBOLS:输入any。file_table类型。如果你想取消引用,你需要使用另一个字段符号,像这样:

ASSIGN str_mfrnr TO <str1>. 

This将str_mfrnr的值存储到字段符号中。如果将其格式化为像'wa_itab-my_column'这样的工作区域,则现在将包含此字符串。接下来,将该位置分配给另一个FS:

ASSIGN (<str1>) TO <tmfrnr>.

现在指向wa_itab-my_column。如果执行:

<tmfrnr> = some_value.

现在指向的位置包含some_value中的值。ABAP指针更像C指针,你必须知道你引用的是值还是位置。

这是我前段时间写的一篇小报告。我想这就是它的工作原理:

REPORT  zpointers.
* Similar to C:
***************
*  int *pointer;
*  int value = 1.
*  pointer = &value
*  int deref = *pointer
*this is the variable
DATA int TYPE i VALUE 10.
*this is the pointer, or the reference to a memory address
DATA pointer_i TYPE REF TO i.
*this is the dereferenced value, or the var that points to the
*value stored in a particular memory address
FIELD-SYMBOLS <int> TYPE i.
*the memory address of variable 'int' is now assigned to
*variable 'pointer_i'.
GET REFERENCE OF int INTO pointer_i.
*you can access the pointer by dereferencing it to a field symbol.
ASSIGN pointer_i->* TO <int>.

相关内容

  • 没有找到相关文章

最新更新