C++ Visual studio将显示函数@main.cpp

C++ Visual studio将显示函数@main.cpp,c++,visual-studio-2012,C++,Visual Studio 2012,我试图弄明白为什么VS2012没有显示functions.cpp@main.cpp中的multi函数。为了让它显示在main.cpp中,我必须键入int multi;在main.cpp中 这里有两个截图,第一个截图是int multi;in main.cpp 第二个是没有。代码在其中两种情况下运行良好,但当我想在main.cpp文件中导航到多功能时,如果我不键入int multi;@main.cpp 有人能解释一下我做错了什么吗 多谢各位 示例图1 示例图2 这是我的密码 Main.cpp #i

我试图弄明白为什么VS2012没有显示functions.cpp@main.cpp中的multi函数。为了让它显示在main.cpp中,我必须键入int multi;在main.cpp中

这里有两个截图,第一个截图是int multi;in main.cpp

第二个是没有。代码在其中两种情况下运行良好,但当我想在main.cpp文件中导航到多功能时,如果我不键入int multi;@main.cpp

有人能解释一下我做错了什么吗

多谢各位

示例图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;
}
标题.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

您只能与头文件一起使用,并按如下方式执行:

#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
通过这种方式,您不需要声明函数。 您试图做的是创建一个“类”文件? 更好的方法是在项目>添加>类上单击右键 您可以看到它是如何工作的。

包括保护、ifndef\u头、define\u头、endif行在正常情况下不属于cpp文件。您应该将它们从functions.cpp中删除


在一个小程序中,它可能不会导致问题,但header.h和_header_u是名称的糟糕选择。你不应该在下划线后面加大写字母。此处的更多信息:

这是因为该下拉列表仅显示您在当前文件中声明/定义的项目的名称。这是预期的行为,因为它的目的是在当前文件中导航,在其他文件中显示项目的名称会将您带到不同的文件,并且它会在诸如iostream之类的标题中显示您并不真正感兴趣的内容

IntelliSense的其他功能确实向您展示了多功能,如键入:


非常感谢。如果我理解正确,如果我使用一个外部文件来声明/定义我的函数,我仍然需要在调用/使用这些函数的文件中向前声明/定义我的函数。对吗?不!您只需在声明/定义它们的位置包含标题。顶部的下拉列表没有显示它们并不意味着它们不可用。就像我说的,IntelliSense的其他功能也展示了它们。谢谢!你帮助我更好地理解了编程语言和工具。非常感谢。