首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >继承类型编译Nimrod程序中的未声明字段

继承类型编译Nimrod程序中的未声明字段
EN

Stack Overflow用户
提问于 2013-11-01 23:17:43
回答 1查看 339关注 0票数 4

我试图编译以下代码:

代码语言:javascript
复制
type
  TPerson = object of TObject
    name*: string 
    age: int

  TStudent = object of TPerson
    id: int

var
  student: TStudent
  person: TPerson

student = TStudent(name: "Anton", age: 5, id: 2)

但我得到了以下错误:

错误:未声明字段:“id”

如何没有声明id?代码示例直接来自本教程。语言中有什么变化没有反映在教程中吗?

另外,如果我试图运行以下代码:

代码语言:javascript
复制
student = TStudent(name: "Anton")
echo student.name

我得到以下错误:

SIGSEGV:非法存储访问(试图从零开始读?)

为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-03 09:08:27

恐怕您正在使用尼姆罗德的最后一个稳定版本( 0.9.2版本是在2013年5月发布的)或一个旧的git签出,您突出显示的是编译器中的bug。现在,使用git版本的https://github.com/Araq/Nimrod/commit/75ca6eb34fbc983d88961664fd1cfce5f8b44abf,您的第一个和最后一个示例都没有问题。在过去的几个月中,已经修复了一些与语言中的对象继承相关的bug (第179期第520期第575期第563期)。

如果你决定建立一个git版本(这一点都不可怕,虽然有时在语言中有回归),请使用git中的构建说明。,因为该网站可能还没有更新。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19736951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档