这是我程序中的一门课!当我尝试编译整个程序时,出现如下错误消息:



来源

class Scene
{
    int L,Dist;
    Background back ;
    Lake lake(int L);
    IceSkater iceskater(int Dist);
public :
    Scene(int L, int Dist)
    {
        cout<<"Scene was just created"<<endl;
    }

    ~Scene()
    {
        cout<<"Scene is about to be destroyed !"<<endl;
    }
};

最佳答案

您的问题在以下行中:

Lake lake(int L);

如果您只是想声明一个Lake对象,则可能要删除(int L)。您所拥有的就是声明一个函数lake,该函数返回Lake并接受int作为参数。

如果您在构造lake对象时尝试传递L,那么我认为您希望代码看起来像这样:
class Scene
{
    int L,Dist;
    Background back ;
    Lake lake;
    IceSkater iceskater;
public :
    Scene(int L, int Dist) :
        L(L),
        Dist(Dist),
        lake(L),
        iceskater(Dist)
    {
        cout<<"Scene was just created"<<endl;
    }
.....

注意添加到构造函数的4行。这称为成员初始化,及其构造成员变量的方式。在faq中阅读有关它的更多信息。或其他一些花絮,我发现了herehere

关于c++ - 没有类类型C++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14143967/

10-10 20:35