C++从另一个文件调用构造函数

-1 c++ constructor class

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

Mountains.h

#ifndef MOUNTAINS_H
#define MOUNTAINS_H

class Mountains{
    public:
        Mountains();
        ~Mountains();
};
#endif
Run Code Online (Sandbox Code Playgroud)

Mountains.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;
}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

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


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

    Mountains m();

    system("PAUSE");
    return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

我希望,"山脉刚刚被创建",当我打电话时写入控制台Mountains m();这不会发生.

K-b*_*llo 7

问题就在这里:

Mountains m();
Run Code Online (Sandbox Code Playgroud)

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

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

Mountains m;
Run Code Online (Sandbox Code Playgroud)

或者在C++ 11中:

Mountains m{};
Run Code Online (Sandbox Code Playgroud)

std::在使用标准库中的内容时,您也缺少资格,例如coutendl.这是假设你using namespace std;在相关的地方不做,虽然是捣蛋.