问题标签 [eiffel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
design-patterns - 访客模式和复合模式
我试图开发一种方法来构造算术和逻辑表达式,并对它们执行操作。对于结构,我使用复合模式,对于操作,我使用访问者模式。
我对具体访问者类的实现有点困惑。
这是我目前的做法:
我的附加课:
现在对于访问者模式,这是一个应该评估给定表达式的具体访问者(我还想要一个进行类型检查、漂亮打印等的具体访问者)。
我的问题是,在我的每个结构(加法、减法、否定等)中都有评估方法是否违背了访问者模式的目的,因为所有评估都应该在访问者类中完成?那么如何在访问者类中实现它呢?我在想我可以做类似的事情:
但是我的结构中必须有许多接受方法,对于算术表达式,它必须返回 INTEGER,对于逻辑运算,它必须返回 BOOLEAN。
c++ - “无法存储编辑器布局信息。” 在埃菲尔工作室
我没有真正的编程问题,但更像是 IDE 问题。我的 Eiffel Studio 15.01 无法启动,因为链接中的图片显示了这个错误。 http://imgur.com/kiKJyez
有人可以帮忙吗?
polymorphism - 埃菲尔的多重继承复制
我正在努力理解多重继承与复制和多态性的相互作用。请考虑以下形成经典菱形图案的类。
如果我将 D 的实例附加到ob_as_c
C 类型的对象,ob_as_c.c
则按预期打印“c”。但是,如果将实例附加到ob_as_b
类型 B 的对象上,则ob_as_b.b
打印也会打印“c”。
这是预期的行为吗?显然,我想ob_as_b.b
打印“b”。
class - Eiffel 中的类属性
我正在尝试在 Eiffel 中创建一个由一些属性和函数组成的类。我不断遇到属性对 setName 不可见或未正确初始化的问题。编译器错误是:VEVI:变量设置不正确。属性:名称。我希望能够在 APPLICATION 中实例化 TESTER 对象并调用这些方法。
arrays - 如何在 Eiffel 中的数组中添加和删除对象
我正在尝试创建一个维护 CRITTER 对象数组的 CONTAINER 类(我已经创建并测试了它。请注意,有各种 CRITTER 亚种,它们继承自 CRITTER 超类)。目的是从这个数组中添加和删除 CRITTER 对象。这是 CONTAINER 类的样子:
两个问题:首先,我可以在 APPLICATION 中实例化 CONTAINER 类,但是当我调用
我在第二行得到一个先决条件,无效索引违规错误。这可能是因为我没有设置数组的上限和下限。但是,当我尝试这样做时,会出现语法错误。解决这个问题的方法是什么?
其次,为了从数组中删除一个对象,如果我能掌握索引值会有所帮助,但我看不到任何这样做的函数,除非我遗漏了一些东西。
algorithm - 编码空间删除时如何摆脱最后一个空格
这是我的空间删除任务的艾菲尔代码:
这是示例输入:
我运行了代码,得到的输出与要求略有不同,比如说,当行中有尾空格时,我总是得到一个额外的空格。
这是我的输出:
有人可以帮我吗?
compiler-errors - Eiffel C 编译器错误
我正在使用 Effiel studio 进行编码,我注意到在菜单下方的 ErrorList 中有一条错误消息显示:“错误代码:C 编译器错误
错误:外部 C/C++ 编译失败。怎么做:查看外部 C/C++ 编译以了解详细信息。”
有谁擅长 Eiffel 知道这意味着什么以及如何调试它?
algorithm - 如何使单词在偶数位置大写?
这是我的 eiffel 程序,它基本上是在执行空格删除(删除给定文本文件中的冗余空格)以遵循正则表达式:A+(SA+)*EOL,其中对于文件中的每一行,它必须以字母开头,并且字母之间只有一个空格。
我的问题是,基于这个程序,我如何扩展它以使每个其他单词都变成大写?即第 2、第 4、第 6 等。
object - 创建动态对象 (Eiffel)
我必须找到一种动态创建对象的方法,这意味着用户可以决定程序启动后要创建多少个对象。我试图做的是:
一旦用户选择了玩家的数量,变量计数就会更新并且创建对象的特征会被调用。
我使用了这种蛮力方法,而不是循环,因为我需要对象的“名称”,我必须在程序中再次调用它们。
无论如何,编译器给了我一个 VEVI 错误,变量设置不正确。一些帮助?
eiffel - 埃菲尔算法:第一个重复字符
我正在埃菲尔为学校实验室编程,其中一项任务是在给定算法中找到错误。该算法返回第一个重复的字符。
该算法的工作原理如下:
我花了最后几个小时试图找到其中的错误,但它总是通过所有测试。
任何帮助将非常感激。谢谢。