Fortran Coder

查看: 265|回复: 4

[面向对象] Fortran2003面向对象如何将变量声明成静态的?如何写构造方...

[复制链接]

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
发表于 2017-5-10 16:26:53 | 显示全部楼层 |阅读模式
Fortran2003支持面向对象,然而我在教材《Fortran 95 2003 for Scientists and Engineers(3rd Edition)》(《Fortran 95_2003程序设计  第3版》)的面向对象那一章没有看到声明静态属性的语句(就像java中的static关键字的功能一样),请问如何声明?第二个问题,构造方法怎么写?教材里只看到了析构方法,而没有找到构造方法。
回复

使用道具 举报

1126

帖子

12

主题

5

精华

论坛跑堂

Fcode跑堂

F 币
975 元
贡献
820 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2017-5-10 17:59:56 | 显示全部楼层
面向对象不是一种技术,而是一种编程思维。
Fortran2003 有一些新特征,利用它们可以更方便的实现“面向对象”的编程思维。
但是它毕竟和其他语言不同,所以不能完全的类比。

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

341

帖子

2

主题

0

精华

大宗师

F 币
2391 元
贡献
1445 点

水王勋章元老勋章热心勋章

发表于 2017-5-10 22:11:41 | 显示全部楼层
即使是C++对于static也有两种解释
  • Static or thread storage duration and internal linkage
  • Declares a static data member or member function
前者的话,用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

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
 楼主| 发表于 2017-5-12 09:30:01 | 显示全部楼层
fcode 发表于 2017-5-10 17:59
面向对象不是一种技术,而是一种编程思维。
Fortran2003 有一些新特征,利用它们可以更方便的实现“面向对 ...

感谢!!!我还以为我看的那本书漏讲了呢

3

帖子

1

主题

0

精华

新人

F 币
20 元
贡献
10 点
 楼主| 发表于 2017-5-12 09:30:28 | 显示全部楼层
pasuka 发表于 2017-5-10 22:11
即使是C++对于static也有两种解释
  • Static or thread storage duration and internal linkage

  • 感谢!!!要好好关注一下这两个项目
    您需要登录后才可以回帖 登录 | 极速注册

    本版积分规则

    QQ|捐赠本站|Archiver|关于我们 About Us|QQ群|Fcode

    GMT+8, 2017-10-20 05:37

    Powered by Discuz! X3.2

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表