-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();这不会发生.
问题就在这里:
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::在使用标准库中的内容时,您也缺少资格,例如cout或endl.这是假设你using namespace std;在相关的地方不做,虽然是捣蛋.