Visual Studio展示函数@main.cpp

时间:2013-03-05 02:22:53

标签: c++ visual-studio-2012

我试图弄清楚为什么VS2012没有显示来自functions.cpp @ main.cpp的函数 multi 。为了使它显示在main.cpp中,我必须在main.cpp中键入 int multi();

这是2个屏幕截图,第一个屏幕截图是在main.cpp中的int multi();

第二个没有。代码在其中两种情况下运行良好,但是当我想导航到main.cpp文件中的multi函数时,如果我不键入int multi(); @ main.cpp,我就无法执行此操作

有人可以解释一下我做错了吗?

谢谢。

示例图片1

enter image description here

示例图片2

enter image description here

这是我的代码

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

functions.cpp

#ifndef _HEADER_
#define _HEADER_

#include <iostream>

using namespace std;

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

3 个答案:

答案 0 :(得分:0)

这是因为该下拉列表仅显示您在当前文件中声明/定义的项目的名称。这是预期的行为,因为它的目的是在当前文件中导航,并显示其他文件中的项目名称将带您到不同的文件(加上它会显示像iostream这样你不感兴趣的标题中的东西)。

IntelliSense的其他功能会显示“多”功能,例如输入“::”:

enter image description here

答案 1 :(得分:-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

并且通过这种方式,您不需要声明该功能。 你试图做的是创建一个班级&#39;档案? 更好的是它只需点击项目上的右键&gt;添加&gt;类 你可以看到它是如何工作的。

答案 2 :(得分:-1)

包括警卫,#ifndef _HEADER_, #define _HEADER_, #endif行在正常情况下不属于cpp文件。您应该从functions.cpp删除它们。

它可能不会导致您在小型程序中出现问题,但header.h_HEADER_对于名称选择不当。你不应该使用下划线后跟大写字母。更多信息:What are the rules about using an underscore in a C++ identifier?