derived-types相关内容
我在 Fortran90 程序中有以下数据结构: TYPE derivedType字符(100)::名称=''整数 :: 类型 = 0真实(种类(1.0D0))::属性= 0.0END TYPE 派生类型类型(派生类型),可分配,维度(:)::arrayOfDerivedTypes 当我尝试在 GDB 中调试和打印值时: (gdb) p arrayOfDerivedTypes(1)%name
..
我想知道如何创建一个返回实数、整数或字符串的函数. 例如,调用将是 write(*,*)dt%get() 其中 get() 将返回: 如果 dt%isInteger = .true,则为整数. 如果 dt%isReal = .true. 则为实数一个字符,如果 dt%isStr = .true. 我相信这可能通过使用抽象接口使过程 get() 指向过程 getInteger(
..
我想使用子例程 sum_real 访问数组派生类型中的数组元素.即:对所有人的权重中的第一个条目求和. 输入 my_type真实的,维度(:),可分配的::重量真实的::total_weight结束类型 my_type类型 (my_type)、维度 (:)、可分配 :: 人类型(my_type)::答案分配(人(2))分配(人(1)%权重(2))分配(人(2)%权重(2))人 (1) % 体重
..
我有一个 Fortran 代码,其中包含许多包含指针的派生类型.我正在编写需要访问这些变量的 C++ 代码.如果没有指针,我无法重写这些派生类型,因为它们在 Fortran 代码中的数百个不同地方使用. 下面是示例代码: 简单的模块使用 iso_c_binding类型,绑定(C)::简单整数 :: A整数、指针 :: B、C(:)端型简单结束模块简单 我需要从 C 中访问 SIMPLEF
..
虽然我已经编写了最终过程,但我定义了一个派生类型并遇到了一些内存释放问题.代码如下 模块 ModuleCoordinate隐式无类型 :: TCoordinate实数(8),维度(:),指针::坐标=>;空值()包含过程 :: TCoordinateAssignment通用的,公共的 :: 赋值(=)=>TCoordinateAssignment最终 :: TCoordinateDel结束类型
..
我定义了一个派生类型并在内存释放方面遇到了一些问题,尽管我已经编写了最终过程.代码如下 module 模块坐标隐式无类型 :: TCoordinatereal(8),dimension(:),pointer :: Coordinate =>空值()包含程序:: TCoordinateAssignment通用,公共::赋值(=)=>坐标分配最终 :: TCoordinateDel结束类型 TCoo
..
Haskell 中的 代数数据类型(ADT)可以自动成为某些typeclasse的实例(例如Show, Eq) 从它们派生. data 也许 a = 无 |只是一个推导 (Eq, Ord) 我的问题是,这个 deriving 是如何工作的,即 Haskell 如何知道如何为派生 ADT 实现派生类型类的功能? 另外,为什么 deriving 仅限于某些类型类?为什么我不能自己写可以派生
..
我想使用子例程 sum_real 访问数组派生类型中数组的元素.即:对所有人的权重中的第一个条目求和. 输入 my_type真实的、维度(:)、可分配的 :: 重量真实 :: total_weight结束类型 my_type类型(my_type),维度(:),可分配的::人输入 (my_type) :: 答案分配(人(2))分配(人(1)%权重(2))分配(人(2)%权重(2))人 (1) %
..
我想使用子例程 sum_real 访问数组派生类型中数组的元素.即:对所有人的权重中的第一个条目求和. 输入 my_type真实的、维度(:)、可分配的 :: 重量真实 :: total_weight结束类型 my_type类型(my_type),维度(:),可分配的::人输入 (my_type) :: 答案分配(人(2))分配(人(1)%权重(2))分配(人(2)%权重(2))人 (1) %
..
似乎Fortran 90不允许在派生数据类型中使用命名常量.这是真的?以下代码不起作用. 程序my_prog隐式无类型:: my_type整数,参数:: a = 1实(种类(1.d0)):: b结束类型my_type类型(my_type):: complex_type结束程序my_prog 编译器说派生类型定义中不允许使用参数语句. 当我删除 parameter 关键字时,一切正常.但
..
我正在尝试创建一个XmlSerializer,以正确地序列化和反序列化派生类型.请看下面的代码.非常感谢您在使用XmlAttributeOverrides广告附加类型来创建适当的XmlSerializer以及将具有VeteerObject的GetVehicleResponse实例序列化为"SUV"对象方面的帮助. using System; using System.Collections.
..
我想知道是否有可能在Fortran中定义一个派生类型,该派生类型自动返回正确的类型,而无需专门调用该类型,例如var%real?这是一个解释我的意思的示例: module DervType implicit none type, public :: mytype real(8) :: r integer :: i logical :: l end ty
..
我正在尝试为派生的类型的抽象类型编写构造函数,以目标是使运行时多态性设置正确的动物腿数. 这是两个模块: 动物 module animal_module implicit none type, abstract :: animal private integer, public :: nlegs = -1 contains
..
假设您需要一个数组列表,每个数组具有相同的大小。使用2D数组在性能上是否更好: 整数,可分配的:: data(:, :) 或一系列派生类型: 类型测试 整数,可分配::内容(:) 最终类型 类型(test),可分配::数据(:) 当然,对于不同大小的数组,我们别无选择。但是在两种情况下如何管理内存?另外,其中之一是良好的代码习惯吗? 解决方
..
我最近听说我的一位同事声称“子类型"的概念未在C ++中定义.他声称“子类型"在C ++术语中正确地称为“派生类型".这是真的?如果我有: class A { }; class B : public A { }; 我可以将B称为A的子类型吗?还是仅在C ++中将B称为A的“派生类型"是有效的? 解决方案 子类型不是C ++中常见术语的一部分. Wikipedia中的定义(感谢C
..
我想知道如何创建一个返回实数,整数或字符串的函数. 例如,呼叫将为write(*,*)dt%get(),其中get()将返回: dt%isInteger = .true. 的整数 dt%isReal = .true. 的实数 如果是dt%isStr = .true. ,则为字符 我相信可以通过使用抽象接口使过程get()指向过程getInteger(),getReal()或
..
我在这样的模块中声明了一个派生类型: MODULE dmotifs TYPE :: PRM 整数,私有:: nsp = 4,nrx = 8,maxprx = 4 REAL,私有:: cref = 1e-6,tref = 1 REAL,DIMENSION(nrx,maxprx): :k REAL ::输入 结束类型PRM 包含 SUBROUTINE unreg(
..
是否可以在Fortran中将矩阵声明为派生类型?例如,可以做些什么来使通话 class(four_by_four_matrix) :: A call A%inv 有效吗?哪里inv被声明为four_by_four_matrix的过程? 解决方案 问题“可能吗?"的答案是的,有可能.只需将2d数组放入您的类型中即可: type four_by_four_matrix
..
我有一个并行编程类的并行I / O项目,我必须实现派生数据类型。我没有清楚地理解darray和子阵列之间的区别。 darray可以从动态分配的数组派生吗?主要区别是什么? 解决方案 Subarray允许您描述更大的多维数组的单个块/切片。如果每个MPI任务都有一个大型全局数组的单个切片/块,(或者如果您正在任务之间传递本地数组的块),那么MPI_Type_create_subarray就是
..
我想用派生类类型覆盖虚方法。目前最好的方法是什么?到目前为止,我发现了两种方法: 使用 abstract base class ;使用 protected 方法桥接。 使用 protected 实现 public accessor。 基本情况(未实施解决方案,克隆始终返回基本类型 A1 ): 公共类A1 { public int X1 {get;组; } public
..