Fortran Coder

标题: Fortran2003面向对象如何将变量声明成静态的?如何写构造方... [打印本页]

作者: mango_user    时间: 2017-5-10 16:26
标题: Fortran2003面向对象如何将变量声明成静态的?如何写构造方...
Fortran2003支持面向对象,然而我在教材《Fortran 95 2003 for Scientists and Engineers(3rd Edition)》(《Fortran 95_2003程序设计  第3版》)的面向对象那一章没有看到声明静态属性的语句(就像java中的static关键字的功能一样),请问如何声明?第二个问题,构造方法怎么写?教材里只看到了析构方法,而没有找到构造方法。

作者: fcode    时间: 2017-5-10 17:59
面向对象不是一种技术,而是一种编程思维。
Fortran2003 有一些新特征,利用它们可以更方便的实现“面向对象”的编程思维。
但是它毕竟和其他语言不同,所以不能完全的类比。

fortran没有static关键字。构造方法只能每个成员独立赋值,比如
[Fortran] 纯文本查看 复制代码
type s_t
  integer :: i,j
end type s_t
type( s_t ) :: my = s_t(1,2)


作者: pasuka    时间: 2017-5-10 22:11
即使是C++对于static也有两种解释
前者的话,用module封装parameter变量就行
对于Fortran面向对象编程,请参考下面两个开源项目,能吃透任意一个,恭喜lz的fortran编程功力已经跻身中国大陆地区的前5%行列
szaghi/FLAP: Fortran command Line Arguments Parser for poor people
https://github.com/szaghi/FLAP
wavebitscientific/functional-fortran: Functional programming for modern Fortran
https://github.com/wavebitscientific/functional-fortran

作者: mango_user    时间: 2017-5-12 09:30
fcode 发表于 2017-5-10 17:59
面向对象不是一种技术,而是一种编程思维。
Fortran2003 有一些新特征,利用它们可以更方便的实现“面向对 ...

感谢!!!我还以为我看的那本书漏讲了呢
作者: mango_user    时间: 2017-5-12 09:30
pasuka 发表于 2017-5-10 22:11
即使是C++对于static也有两种解释
  • Static or thread storage duration and internal linkage

  • 感谢!!!要好好关注一下这两个项目




    欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2