当元素是对象时使用STL DS

问题描述

如果我想使用vector并且每个元素都是一个不同的类(vector productList) 在这种情况下,由于向量中的每个元素都是一个对象,我该如何创建复制c'tor和赋值运算符。 我尝试以“常规”方式进行操作,但它给了我一个错误E0312,并写信给我说该转换不存在,我正努力了解这些错误的含义。

通常,当我具有STL数组(vector,List ...)并且其元素为类*时,我该如何工作 使用它吗?它是否类似于常规数组,我需要照顾深拷贝,c'tor,赋值运算符等...还是即使元素是动态类也可以自动执行?

谢谢!

根据建议,我从向量 productList更改为向量std :: shared_ptr productList

REPORT.
CLASS lcl_app DEFinitioN.
  PUBLIC SECTION.
    TYPES: BEGIN OF helper_type,carrid TYPE scarr-carrid,carrname TYPE scarr-carrname,END OF helper_type.
    TYPES: tt_scarr TYPE STANDARD TABLE OF helper_type.  " <=== declare the type
    CLASS-METHODS main.
    CLASS-METHODS process_table                          " <=== new method with this type
        IMPORTING table TYPE tt_scarr.
ENDCLASS.
CLASS lcl_app IMPLEMENTATION.
  METHOD main.
    DATA: lt_scarr TYPE STANDARD TABLE OF helper_type.
    SELECT carrid,carrname FROM scarr 
        INTO TABLE @lt_scarr.
  ENDMETHOD.
  METHOD process_table.                                  " <=== new method
    LOOP AT table REFERENCE INTO DATA(line).
      DATA(carrid) = line->carrid.
    ENDLOOP.
  ENDMETHOD.
ENDCLASS.

those are the errors im getting- E0312,E0413

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)