Ran*_*dan 2 c++ java double constructor
请解释:
我正在声明一个包含2个构造函数的类如下:
class A {
public :
A (double x) {cout << "DOUBLE \n";}
A (float x) {cout << "FLOAT \n";}
};
Run Code Online (Sandbox Code Playgroud)
然后:
A a (3.7);
Run Code Online (Sandbox Code Playgroud)
这个结果以DOUBLE作为输出.我也尝试过这个java - 同样的结果.有谁能解释为什么?
编辑:我确实认识到double是数字的默认类型,例如3.7我的问题是为什么以及如果有充分的理由.
这是因为3.7文字是一个double.如果你愿意float,请使用3.7f.在C++中,它在标准2.14.4浮动文字中指定.最相关的部分是
double除非后缀明确指定,否则浮动文字的类型除外.后缀f和F指定float,后缀l和L指定long double.
这不能解释为什么会这样.我想这是因为它在C中的方式,以及它在C中的那种方式必须在某种程度上是任意的.
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |