簡體   English   中英

C ++從另一個文件調用構造函數

[英]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{};

當使用標准庫中的東西(例如coutendl時,您還缺少std::資格。 假設您不using namespace std; ,盡管不合理,但在相關的地方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM