首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否要删除Fortran数组中的变量?

是否要删除Fortran数组中的变量?
EN

Stack Overflow用户
提问于 2018-06-08 16:42:32
回答 1查看 249关注 0票数 2

我有一个下面的代码,有一个抽象类型,继承类型和一个简短的程序,在那里我创建了一个对象并将其存储在一个数组中。

代码语言:javascript
复制
module m
    implicit none

    type :: container
        class(a), allocatable :: item
    end type container

    type, abstract :: a
        integer, public :: num
    end type a

    type, extends(a) :: b
        integer, public :: num2
   end type b
end module m

program mwe
    use m

    implicit none

    class(a), allocatable :: o1
    class(container), allocatable :: arr(:)

    o1 = b(1, 2)

    allocate(arr(2))
    arr(1) = container(o1)

    select type(t => o1)
        type is(b)
        write(*,*) t%num, t%num2
    end select

    select type(t => arr(1)%item)
        type is(b)
        write(*,*) t%num, t%num2
    end select
end program mwe

问题是,输出如下所示:

代码语言:javascript
复制
       1           2
       1           0

可以看出,存储在数组中的同一变量将第二个变量置为空。为什么会发生这种情况?是因为数组的类型是a,它只包含第一个变量吗?

我正在用ifort version 18.0.3编译代码。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50756696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档