主题:gfortran对于type对象,为什么不能用dot来选择对象成员?
feiyuno1987
[专家分:10] 发布于 2011-07-11 11:22:00
! type::person
! integer::height,weight
! end type
!
! type(person)::a(10)
!
! do i=1,10
! a(i).height=i
! a(i).weight=i
!
! end do
这样就error
! type::person
! integer::height,weight
! end type
!
! type(person)::a(10)
!
! do i=1,10
! a(i)%height=i
! a(i)%weight=i
! end do
标准写法对的,是不是gfortran识别不了下面的点号?
回复列表 (共17个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-07-11 11:31:00
不了解,难道现在标准允许用dot访问成员了?
板凳
yeg001 [专家分:14390] 发布于 2011-07-11 11:33:00
楼主是不是跟某语言的语法混在一起了啊?
3 楼
feiyuno1987 [专家分:10] 发布于 2011-07-11 12:13:00
[quote]楼主是不是跟某语言的语法混在一起了啊?[/quote]
fortran教程上的,在cvf上面可以用dot,在gfortran上面不能用。没有混在一起,我只是调用fortran的dll
4 楼
feiyuno1987 [专家分:10] 发布于 2011-07-11 12:14:00
[quote]不了解,难道现在标准允许用dot访问成员了?[/quote]
在cvf6.6上面可以用dot访问type的成员
5 楼
yeg001 [专家分:14390] 发布于 2011-07-11 13:13:00
我也是跨平台使用fortran, 一般看比较通用的书, 没看过针对cvf的教程.
自定义类型变量印象中没提到用dot, 后来2003标准的class可否用就不记得了, class现在还是很少用.
6 楼
dongyuanxun [专家分:7180] 发布于 2011-07-11 14:43:00
lz应该知道什么叫标准语法,什么叫扩展语法。
本来这种比较就没有意义,如果要谈论bug的话,要比较同种编译器的不同版本。
7 楼
feiyuno1987 [专家分:10] 发布于 2011-07-11 17:45:00
[quote]lz应该知道什么叫标准语法,什么叫扩展语法。
本来这种比较就没有意义,如果要谈论bug的话,要比较同种编译器的不同版本。[/quote]
我就是想知道哪种用着最可靠方便。
8 楼
yeg001 [专家分:14390] 发布于 2011-07-11 20:22:00
比较可靠的还是用标准, 严格按照标准写移植问题就不大. 不过确实完全按照标准写有些代码很不方便或者很啰嗦. 既然linux下用%都可以就用%吧. (ivf不知道是否支持dot, 虽然一直用ivf但没用过dot)
9 楼
feiyuno1987 [专家分:10] 发布于 2011-07-11 22:20:00
[quote]比较可靠的还是用标准, 严格按照标准写移植问题就不大. 不过确实完全按照标准写有些代码很不方便或者很啰嗦. 既然linux下用%都可以就用%吧. (ivf不知道是否支持dot, 虽然一直用ivf但没用过dot)[/quote]
恩,为了避免不必要的麻烦,还是用国际标准。微软搞的cvf就是喜欢搞特殊,用dot。
10 楼
dongyuanxun [专家分:7180] 发布于 2011-07-11 23:11:00
说一下,cvf和微软没啥关系,这个是康柏的
我来回复