2014-10-01 477 views
0

为什么需要指定变量的数据类型?如果我的程序要求用户输入可能属于两种非相交数据类型中的任何一种的数据,该怎么办?不应该提供声明变量而不指定变量的选项,以便说明情况。为什么我们不能让计算机根据用户输入来决定数据类型?如果编译器有足够的能力来识别类型错误,我相信它可以根据输入轻松指定数据类型。在C++中声明变量而不指定其数据类型

+1

您在质疑强类型语言的基本定义。在编译时知道每个变量和每个表达式的类型使C和C++强类型语言。没有这个,你将会有一个弱类型的语言,比如PERL,JavaScript,PHP。 – 2014-10-01 06:32:03

+0

因为这不是C++的设计方式。它将程序的这部分留给应用程序员,而不是语言。如果你想要一个更灵活的数据类型的语言,使用动态语言,如PHP或Lisp。 – Barmar 2014-10-01 06:32:38

+0

我认为我只是补充说我对编程和C++很陌生。在阅读关于数据处理的章节并且在网络搜索被证明无效之后(大部分答案都是关于C),这个问题出现了,我决定发布这个问题。 @RSahu所以这就是它的一切!这解决了我的问题。我想我可以通过阅读强类型和弱类型语言来充分理解为什么C++不提供这个选项。谢谢! – Sachin 2014-10-01 06:48:12

回答

0

编译器不处理输入,所以这是不行的。

boost::variant<T,U>这是一种可以安装一个TU值,但你还是要指定编译器的所有可能的选项,你必须让你把明确豆。

用户输入总是启动作为一个字符串出来。解析将其转换为类型,但结果取决于实际解析。如果你正在解析浮点值,0是一个非常好的浮点值。