Fortran Coder

类成员是过程指针的问题

查看数: 6144 | 评论数: 2 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-1-17 15:50

正文摘要:

本帖最后由 lookbook 于 2019-1-17 15:56 编辑 文件1中定义了一个父类,其成员里面有名为zero_father的过程指针,指向了该文件中的私有函数zero。 文件2中定义了一个子类,继承了上面这个父类,并添加名为zero_ ...

回复

lookbook 发表于 2019-1-18 12:15:37
vvt 发表于 2019-1-18 09:03
下次提问,请给出代码(文字,而非图片)
(反正我是不愿意再把代码敲一次的)

感谢提醒,
1、两个文件文件里都有属性为private的zero函数
2、过程指针比较奇怪,必须接口严格对上,哪怕是父类子类,都不可互指

我使用的是gfortran
vvt 发表于 2019-1-18 09:03:59
下次提问,请给出代码(文字,而非图片)
(反正我是不愿意再把代码敲一次的)

你的问题:
procedure(method_) , nopass , pointer :: zero_son => zero
这句。

zero_son 的接口是 m_son::method_ 因此要求 this 是 t_son 类型。
指向的 zero 是 m_father::zero,他的接口是 m_father::method_ , 要求 this 是 t_father 类型的。

子类的指针不能指向父类的过程。(反之可以)

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-6 17:02

Powered by Tencent X3.4

© 2013-2024 Tencent

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