0

VS2012がfunctions.cpp@main.cppから関数multiを表示しない理由を理解しようとしています。main.cppに表示するには、int multi();と入力する必要があります。main.cppで。

これが2つのスクリーンショットです。最初のスクリーンショットはint multi();main.cppにあります

2つ目はありません。コードは2つのケースで正常に実行されますが、main.cppファイルの関数に移動したい場合、@main.cppmultiと入力しないと実行できません。int multi();

誰かが私が間違っていることを説明してもらえますか?

ありがとうございました。

画像例1

ここに画像の説明を入力してください

画像例2

ここに画像の説明を入力してください

これが私のコードです

Main.cpp

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

using namespace std;
int plus();

int main()
{

cout << "Eneter a number you want to multiply" << endl;
cout << multi() <<endl;
cout << randomNumber << endl;

system("pause");
return 0;
}

Header.h

#ifndef _HEADER_
#define _HEADER_

#include <iostream>

int randomNumber = 4;
int multi ();

#endif

関数.cpp

#ifndef _HEADER_
#define _HEADER_

#include <iostream>

using namespace std;

int multi()
{
    int x;
    cin >> x;
    return(x=x+x);
}
#endif
4

3 に答える 3

0

これは、ドロップダウンリストに、現在のファイルで宣言/定義したアイテムの名前のみが表示されるためです。これは意図された動作です。その目的は現在のファイル内のナビゲーションであり、他のファイルのアイテムの名前を表示すると、別のファイルに移動します(さらに、iostreamなどのヘッダーに表示されますが、あまり興味がありません)。

IntelliSenseの他の機能は、「::」と入力するなど、「マルチ」機能を表示します。

ここに画像の説明を入力してください

于 2013-03-05T03:10:26.110 に答える
-1

ヘッダーファイルでのみ使用でき、次のように実行できます。

#ifndef _HEADER_H
#define _HEADER_H

#include <iostream>
using namespace std;

int randomNumber = 4;

int multi()
{
    int x = 1;
    cin >> x;
    return(x=x+x);
}

#endif

この方法では、関数を宣言する必要はありません。あなたがやろうとしたのは、「クラス」ファイルを作成することですか?プロジェクトの右ボタンをクリック>追加>クラスをクリックするだけで、どのように機能するかを確認できます。

于 2013-03-05T02:44:50.253 に答える
-1

ガードを含めて#ifndef _HEADER_, #define _HEADER_, #endifください。通常の状況では、行はcppファイルに属しません。それらをから削除する必要がありますfunctions.cpp

小さなプログラムでは問題が発生しないかもしれませんが、名前の選択には適してheader.hいません。_HEADER_アンダースコアの後に大文字を使用しないでください。詳細はこちら:C ++識別子でアンダースコアを使用する際のルールは何ですか?

于 2013-03-05T02:45:17.310 に答える