C++ 可以用不同的头文件调用相同的函数吗?
我有一个功能: ---showme.cppC++ 可以用不同的头文件调用相同的函数吗?,c++,C++,我有一个功能: ---showme.cpp void showme () { std::cout <<"I am " << T << endl; } 我不确定是否有更好/更有效的方法。您应该更改函数以获取参数。调用函数时可以使用宏 void showme (int T) { std::cout <<"I am " << T << endl; } int main (int argc, char** argv)
void showme () {
std::cout <<"I am " << T << endl;
}
我不确定是否有更好/更有效的方法。您应该更改函数以获取参数。调用函数时可以使用宏
void showme (int T) {
std::cout <<"I am " << T << endl;
}
int main (int argc, char** argv) {
// I want to call showme() with different "T" values defined by #define
#define T 5
showme(T);
#define T 6
showme(T);
}
void showme(int T){
std::cout根据注释中的解释,您真正想要的是拥有一个模板
函数,因此您的示例应更改为:
#include <iostream>
template<size_t T> //or int or whatever other type you really need to use
void showme () {
std::cout << "I am " << T << std::endl;
}
int main (int argc, char** argv) {
showme<5>();
showme<6>();
}
#包括
template//或int或任何您真正需要使用的其他类型
void showme(){
std::不能使用函数参数?为什么要为此使用#define
?或者宏只在同一个文件中进行文本替换。在top.cpp
中定义宏对showme.cpp
没有影响。首先,它不起作用-在翻译单元showme.cpp
中的宏t
在翻译单元top.cpp
中,通过宏T
执行ECT。这是XY问题的一个很好的示例。您实际上在尝试做什么?对于几个可能的问题,有几种可能的解决方案。将其设为模板参数。
#include <iostream>
template<size_t T> //or int or whatever other type you really need to use
void showme () {
std::cout << "I am " << T << std::endl;
}
int main (int argc, char** argv) {
showme<5>();
showme<6>();
}