【发布时间】:2015-05-25 17:17:01
【问题描述】:
为了向您展示,我做了一个关于 1 个标头和 2 个 .cpp 文件的问题的极简示例。我所做的只是调用myfunc(),这将获得cin>> 的值。然后 main 将打印值 (+3)。我收到 main.cpp 的错误“a 未定义”。
我认为static 在这里有所帮助,但事实并非如此。我不明白问题是什么。
(我知道,我可以写cout << myfunc()+3;,但这是出于一般目的)。
header.h:
#ifndef header_h
#define header_h
int myfunc();
#endif
main.cpp:
#include <iostream>
#include "header.h"
int main()
{
myfunc();
std::cout << a + 3 << std::endl;
}
second.cpp:
#include"header.h"
int myfunc()
{
static int a;
std::cin >> a;
return a;
}
【问题讨论】:
-
顺便说一句,您很少会做与您似乎正在尝试做的事情类似的事情——如果您发布了一个不同的问题来解释您通过编写这样的代码试图解决什么问题,您一定会得到有关解决问题的更好方法的建议。
-
@Hurkyl ty,我记住了! =) 但那是我的意图。我不想让其他人直接解决任何问题。尽管我会很感激,但我仍然尝试自己解决问题。
标签: c++ function static declaration