0

我有这 3 个代码文件,我想从构造函数中打印“刚刚创建的山”。你能告诉我我错在哪里以及我必须做什么吗?

山脉.h

#ifndef MOUNTAINS_H
#define MOUNTAINS_H

class Mountains{
    public:
        Mountains();
        ~Mountains();
};
#endif

山脉.cpp

#include <cstdlib>
#include <iostream>
#include "Mountains.h"

Mountains::Mountains()
{
    cout<<"Mountains were just created"<<endl;
}

Mountains::~Mountains()
{
    cout<<"Mountains are about to be destroyed"<<endl;
}

主文件

#include <cstdlib>
#include <iostream>
#include "Mountains.h"


int main(int argc, char *argv[])
{

    Mountains m();

    system("PAUSE");
    return EXIT_SUCCESS;
}

我希望当我调用“Mountains m();这没有发生”时将“刚刚创建的山”写入控制台。

4

1 回答 1

7

问题就在这里:

Mountains m();

这不是一个名为 的默认初始化 Mountains对象m。它是一个被调用的函数m,不带参数并返回一个Mountains.

要创建默认初始化 Mountains,您需要执行以下操作:

Mountains m;

或在C++11中:

Mountains m{};

在使用标准库中的东西时,您也缺少std::限定条件,例如或。那是假设您没有在相关的地方做,尽管不受欢迎。coutendlusing namespace std;

于 2013-01-08T21:01:21.047 回答