c++ - 制作一个函数,打印在 c++ 中作为参数给出的任何变量
问题描述
我喜欢通过打印进行调试,因为您可以打印很多东西并调查您的代码。
但是我不喜欢cout<<
一直 ing,因为它有点难写,而且你必须在 cout 中添加新行,这意味着如果你想打印你必须的东西,
cout<< something<<"\n";
我正在用 Javascript 编写一个函数,它很容易实现:
function p(s){
console.log(s)
}
这使得打印东西变得非常容易。例子:
let name = "Alex";
let surname = "De Souza";
p("Name is:");
p(name+surname);
p(len(name));
但是当涉及到 c++ 时,我是否必须这样写:
void p(int i){
cout<<i<<"\n";
}
void p(string s){
cout << s<<"\n";
}
void p(bool b){
cout << b << "\n";
}
.
.
.
还是有一种更简单的方法可以让我更简单地实现它?
我试过自动,但在函数声明中是禁止的。
谢谢。
解决方案
您可以创建模板函数。
这看起来像:
template<typename T>
void p(const T& t) {
std::cout << t;
}
它的作用是,当您点击编译时,它会使用此模板自动创建函数,并T
替换为您在程序中使用的类型。所以如果你要写:
p("Hello World!\n");
p(10 + 20);
它将创建两个函数,一个T
被替换为const char[]
(C 字符串),另一个T
被替换为int
并使用它们。
推荐阅读
- c# - 基于位置的一致随机数(不基于噪声)
- flutter - Flutter 更新失败
- teiid - 将分页从 OData Translator 扩展到 Web Services Translator
- spring-boot - 如何在 Spring Security 中手动更改身份验证提供程序
- javascript - 如何接受在不同窗口中出现的硒警报?
- android - 在 Xamarin.Forms Android 应用程序中,按下设备后退按钮和应用程序图标后再次调用 MainActivity.OnCreate?
- c - SIGCHLD 和 fork + waitpid() 在一个库中
- javascript - 执行单击,直到可以实际单击元素
- laravel - 将请求数据传递给模型观察者类
- python - list .remove() 函数是如何工作的?