整数文字作为 cpp 中函数声明的参数
我几乎熟悉 c
和 c++
编程。今天在搜索函数声明的时候,突然发现了c++
语言中的一个奇怪的语法。
我写了下面的代码:
#include <iostream>
using namespace std;
int foo('3');
int bar(3);
int main(){
}
我从未见过将文字定义为函数参数!所以我预计在编译这个程序时会出现编译错误:
$ g++ file.cpp
但它编译没有任何问题!
所以我很好奇int foo('3');
和int bar(3的含义和用法是什么);
行?
I'm almost familiar with c
and c++
programming. Today I was searching about function declaration when I suddenly came across a strange syntax in c++
language.
I wrote below code:
#include <iostream>
using namespace std;
int foo('3');
int bar(3);
int main(){
}
I've never seen defining the literals as function parameters! So I expected to get compile error when I compile this program:
$ g++ file.cpp
But it compiled without any problem!
So I'm curious to know what's the meaning and usage of int foo('3');
and int bar(3);
lines?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它分别表示
int foo = '3';
和int bar = 3;
。但它并不完全等同,例如,类
=
不允许使用显式
构造函数。It means
int foo = '3';
andint bar = 3;
respectively.But it's not exactly equivalent, e.g. with classes
=
doesn't permitexplicit
constructors.