首页 > 解决方案 > 制作一个函数,打印在 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";
}
.
.
.

还是有一种更简单的方法可以让我更简单地实现它?
我试过自动,但在函数声明中是禁止的。

谢谢。

标签: c++printingcoutconsole.log

解决方案


您可以创建模板函数。

这看起来像:

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并使用它们。


推荐阅读