Oop 基本Smalltalk子类

Oop 基本Smalltalk子类,oop,class,subclass,smalltalk,gnu-smalltalk,Oop,Class,Subclass,Smalltalk,Gnu Smalltalk,我试图在Smalltalk中创建一个非常简单的向量类作为数组的子类。我创建类的代码如下所示: Array subclass: #Vector Vector comment: 'I represent a Vector of integers' Vector class extend [ new [ | r | <category: 'instance creation'> r := super new. r init. ^r ]

我试图在Smalltalk中创建一个非常简单的向量类作为数组的子类。我创建类的代码如下所示:

Array subclass: #Vector
Vector comment: 'I represent a Vector of integers'

Vector class extend [
new [
    | r |
    <category: 'instance creation'>
    r := super new.
    r init.
    ^r 
    ]
 ]

Vector extend [
init [
    <category: 'initialization'>
    ]
 ]
我假设,因为它是数组的一个子类,所以我可以用这种方式创建一个向量。做这件事最好的方法是什么?谢谢


编辑-我想出来了。在深入阅读本教程之后,我发现我需要包括一个特殊的类,它具有不同长度的可索引实例

在您似乎正在使用的GNU Smalltalk中,数组类声明为:

ArrayedCollection subclass: Array [       
    <shape: #pointer>
要继承此行为,可以使用:

Array subclass: Vector [<shape: #inherit>]
但在大多数情况下,创建封装数组的类比创建从数组继承的类更有意义


<> Pr>集合,它是指C++和java中的向量容器的SimultAutoal等价物。

数组是一类特殊的类,具有不同长度的可索引实例。 在您似乎正在使用的GNU Smalltalk中,数组类声明为:

ArrayedCollection subclass: Array [       
    <shape: #pointer>
要继承此行为,可以使用:

Array subclass: Vector [<shape: #inherit>]
但在大多数情况下,创建封装数组的类比创建从数组继承的类更有意义


<> P>也指出,有序集合是C++和java中的向量容器的Simultalk等价物。

我认为你和这个家伙有同样的问题:我看着那个帖子,改变了这些东西,但我还是得到了同样的结果。我想你和这个家伙有同样的问题:我看了那篇文章,改变了那些东西,但我还是得到了同样的结果。