0

重複の可能性:
コンストラクターへの呼び出しがないのはなぜですか?

次のコードを見てください

UIHandler.h

#pragma once
class UIHandler
{
public:
    UIHandler();
    ~UIHandler(void);

private:
    //Book *books;
};

UIHandler.cpp

    #include "UIHandler.h"
    #include <iostream>

    using namespace std;

    UIHandler::UIHandler()
    {        
       {
       //action once code goes here
       }        
        int selection;

        cout << "..............Welcome to DigitalLab Library..........." << endl << endl;;
        cout << "Kindly press, " << endl;
        cout << "1. Enter Books" << endl;
        cout << "2. Display Books"<< endl;
        cout << "3. Member Area" << endl;

        cout << "Your Selection: ";
        cin >> selection;
    }        

    UIHandler::~UIHandler(void)
    {
    }    

メイン.cpp

#include <iostream>
#include "UIHandler.h"

using namespace std;

int main()
{
    UIHandler a();

    system("pause");
    return 0;
}

このコードでは、コードは実行されますが何も起こらないため、UIHandler でコンストラクターを実行できません。UIHandler コンストラクターにパラメーターを渡すと、コンストラクターを使用しなくても、正常に機能します。何故ですか?助けてください!

4

2 に答える 2

3

a型を返す関数を宣言します。最も厄介な解析UIHandlerを参照してください

アップデート

UIHandler a(); 

UIHandler a; 
于 2013-01-24T07:45:00.150 に答える
1

UIHandler a();UIHandlerオブジェクトを返す関数宣言です。()後に削除a

更新:定義を宣言に変更しました。@JesseGoodに感謝

于 2013-01-24T07:44:42.700 に答える