制作一个函数,打印在 C++ 中作为参数给出的任何变量
Making a function that prints any variable given as parameter in 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";
}
.
.
.
或者有没有更简单的方法可以让我更简单地实现它?
我试过auto,但是在函数声明中是被禁止的。
谢谢。
您可以创建模板函数。
这看起来像:
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
替换并使用它们.
我喜欢通过打印进行调试,因为您可以打印很多东西并研究您的代码。
但我不喜欢一直 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";
}
.
.
.
或者有没有更简单的方法可以让我更简单地实现它?
我试过auto,但是在函数声明中是被禁止的。
谢谢。
您可以创建模板函数。
这看起来像:
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
替换并使用它们.