[英]C++ calling constructor from another file
我有這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;
}
main.cpp
#include <cstdlib>
#include <iostream>
#include "Mountains.h"
int main(int argc, char *argv[])
{
Mountains m();
system("PAUSE");
return EXIT_SUCCESS;
}
我希望當我調用Mountains m();
時將“剛剛創建的山”寫入控制台Mountains m();
這沒有發生。
問題就在這里:
Mountains m();
那不是稱為m
的默認初始化的 Mountains
對象。 這是一個名為m
的函數,該函數不帶任何參數並返回Mountains
。
要創建默認初始化的 Mountains
您需要執行以下操作:
Mountains m;
或在C ++ 11中 :
Mountains m{};
當使用標准庫中的東西(例如cout
或endl
時,您還缺少std::
資格。 假設您不using namespace std;
,盡管不合理,但在相關的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.