FreeBASIC自定义类Type编写后编译报错问题求助
FreeBASIC类定义报错修复方案
原代码的错误点
- FreeBASIC 默认的
Type为普通结构体,不支持this指针、成员方法等面向对象特性,必须显式继承内置基类Object才能启用类相关能力 - FreeBASIC 不支持直接在
Type块内部编写成员方法的完整实现,需要先在类内声明方法,再在类外完成实现 - 调用无参成员方法时需补充括号,否则编译器会识别为属性访问而报错
修正后可直接运行的代码
Type MyClass Extends Object Dim mystring As String ' 类内声明成员方法 Declare Function myfunction() As String End Type ' 类外实现成员方法 Function MyClass.myfunction() As String Dim myout As String myout = "Hello your message are: " + this.mystring Return myout End Function Dim myobject As MyClass myobject.mystring = "Im noob" ' 调用方法需加括号 Print myobject.myfunction() ' 暂停程序方便查看输出 Sleep
额外提示
如果不需要使用多态、继承等高级OOP功能,也可以用普通结构体搭配传递结构体指针的全局函数实现类似逻辑,兼容性更好。
内容的提问来源于stack exchange,提问作者Sever
相关产品推荐
相关产品推荐

