模块交叉引用
modula amodula b
a use b
b use a
fortran 怎么办?
把 a 和 b 的公共部分提取出来当做 C
然后 a use c , b use c vvt 发表于 2015-4-9 09:03
把 a 和 b 的公共部分提取出来当做 C
然后 a use c , b use c
还有别的办法吗?
比如C++,类的前置声明.
fortran有相应的解决方案么?
fortran2008编译能通过吗? 具体是这样的,编译有依赖关系
module aaa
use module bbb
function geta(pb) result(aaa)
real:: aaa
......
type(bbb),pointer:: pb
aaa=pb%ccc
end function geta
end module aaa
module bbb
use module aaa
type:: bbb
real:: ccc
.....
contains
procedure:: getb
end type bbb
contains
function getb
this%ccc=geta()
end function
end module bbb
zhan 发表于 2015-4-9 12:43
还有别的办法吗?
比如C++,类的前置声明.
fortran有相应的解决方案么?
个么请问lz,A和B的交叉部分在哪里?变量?方法?
仅仅是变量,个么2楼的建议屡试不爽,可以写module也可写头文件,编译是加-cpp选项
仅仅是方法,个么直接上C++,即使Fortran2008的OOP也太磕碜了
变量方法都有,分而治之 fortran08有没有类前置声明? zhan 发表于 2015-4-9 12:50
具体是这样的,编译有依赖关系
module aaa
use module bbb
粗略看了一下代码,为啥要分成2个互相交叉引用的module?
合并成一个或者简单继承关系的不行吗?
本质上Fortran的OOP更类似于C模拟面向对象而不是C++ zhan 发表于 2015-4-9 12:50
具体是这样的,编译有依赖关系
module aaa
use module bbb
粗略看了一下代码,为啥要分成2个互相交叉引用的module?
合并成一个或者简单继承关系的不行吗?
本质上Fortran的OOP更类似于C模拟面向对象而不是C++ 3Q!
我写了很多这样的模块.
用C++风格写的,现在想组合起来,遇到了编译依赖的麻烦.
想知道fortran08是不是已经可以解决这种问题. zhan 发表于 2015-4-10 12:45
3Q!
我写了很多这样的模块.
用C++风格写的,现在想组合起来,遇到了编译依赖的麻烦.
08标准也没戏
熟悉C++的话,实在没必要继续搞Fortran,除非历史遗留代码
页:
[1]
2