开启辅助访问 切换到窄版
搜索

Fortran Coder

 找回密码
 极速注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

[复制链接]

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

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

使用道具 举报

fcode 发表于 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)

pasuka 发表于 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
mango_user  楼主 发表于 2017-5-12 09:30:01
fcode 发表于 2017-5-10 17:59
面向对象不是一种技术,而是一种编程思维。
Fortran2003 有一些新特征,利用它们可以更方便的实现“面向对 ...

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

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

    本版积分规则 长代码粘贴

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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