小编Kea*_*sed的帖子

如何解决"不命名类型"错误

我收到以下错误: 'class name' does not name a type对于我的所有课程.我怀疑它可能是循环依赖,但我不知道如何解决它,因为每个类都需要从下一个访问函数.以下是我的课程:

Container.h:

#ifndef CONTAINER_H
#define CONTAINER_H

#include "Factory.h"

class Container
{
public:
    Container()
    {
        array = new int[10];
        for (int i = 0; i < 10; ++i) {
            array[i] = i;
        }
    }
    Iterator* createIterator()
    {
        Factory fac;
        return fac.factoryMethod();
    }
    friend class Iterator;

private:
    int* array;
};

#endif //CONTAINER_H
Run Code Online (Sandbox Code Playgroud)

Factory.h:

#ifndef FACTORY_H
#define FACTORY_H

#include "Iterator.h";

class Factory
{
    Iterator* factoryMethod(Container* con)
    {
        return new Iterator(con);
    }
};

#endif //FACTORY_H
Run Code Online (Sandbox Code Playgroud)

Iterator.h: …

c++ circular-dependency

3
推荐指数
1
解决办法
2万
查看次数

如何使用作为数组的实例变量

我想创建一个smalltalk应用程序,其中一个类具有一个实例变量,该实例变量是一个数组,一个实例变量是数组的大小.理想情况下,我希望在创建对象时初始化这些对象,但我会在方法中手动初始化这些对象.

以下是我的代码:

Object subclass: Student [
    | numTests marks |


    initialize [
        numTests := 0.
        marks := Array new: 10.
    ]
]
student := Student new.
student initialize.
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

Object: Array new: 10 "<0x10b054b80>" error: method is responsibility of a subclass
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

arrays smalltalk gnu-smalltalk

2
推荐指数
1
解决办法
167
查看次数