深入理解:Java是类型安全的语言,而C++是非类型安全的语言

 更新时间:2013年06月04日 10:34:23   作者:  
本篇文章是对Java是类型安全的语言,而C++是非类型安全的语言进行了详细的分析介绍,需要的朋友参考下
有过C++开发经验的人会发现,我们可以将0作为false,非零作为true。一个函数即使是bool类型的,但是我们还是可以返回int类型的,并且自动将0转换成false,非零转换成true。代码实例如下:
复制代码 代码如下:

#include<iostream>
 #include<stdlib.h>
 using namespace std;

 bool fun()//函数返回类型是bool,但是我们在函数中可以返回int类型。
 {
     return 1;
 }

 void main()
 {
     int a=1;
     if(a)//a是int类型的,但是可以作bool类型来使用。
     {
         cout<<"C++是非类型安全的。"<<endl;
     }
     system("pause");
 }

但是,在java中,我们就不能这样使用了,java中不能做到int类型转bool类型,比如以下代码:
复制代码 代码如下:

public class TypeSafeTest {
    public static void main(String[] args) {
        int i=1;
        if(i)
        {
            System.out.println("java是类型安全语言");
        }
    }
}

执行上述代码会报如下错误:
复制代码 代码如下:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: Type mismatch: cannot convert from int to boolean
at TypeSafeTest.main(TypeSafeTest.java:4)

上述错误表明在java中int类型不能在自动转变成bool类型了。这就是类型安全的意思。

相关文章

  • C++非继承时函数成员访问属性和类继承过程中的访问控制

    C++非继承时函数成员访问属性和类继承过程中的访问控制

    这篇文章主要介绍了C++非继承时函数成员访问属性和类继承过程中的访问控制,非继承时,protected成员和private成员没有任何区别,都是类内部可以直接访问它们、类外部的类对象不可访问它们、类内部的类对象可以访问它们,更多详细内容请参考下面相关资料
    2022-03-03
  • Qt使用QChart实现静态显示温度变化曲线

    Qt使用QChart实现静态显示温度变化曲线

    QChart模块是Qt Charts库的基础,提供了用于创建和显示各种类型图表的类和接口,本文主要介绍了如何使用QChart实现动态显示3个设备的温度变化曲线,感兴趣的可以了解一下
    2023-06-06
  • 谈谈C语言中位运算你要知道的那些事儿

    谈谈C语言中位运算你要知道的那些事儿

    C语言中的各种运算都是以字节的形式进行,在编写很多系统程序时,如驱动程序、磁盘文件管理程序等,常要求将数据按位(bit)进行运算或者处理,下面这篇文章主要给大家介绍了关于C语言中位运算的相关资料,需要的朋友可以参考下
    2022-02-02
  • C语言二叉树的三种遍历方式的实现及原理

    C语言二叉树的三种遍历方式的实现及原理

    这篇文章主要介绍了C语言二叉树的三种遍历方式的实现及原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 深入C语言把文件读入字符串以及将字符串写入文件的解决方法

    深入C语言把文件读入字符串以及将字符串写入文件的解决方法

    本篇文章是对C语言把文件读入字符串以及将字符串写入文件的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • c++ vector对象相关总结

    c++ vector对象相关总结

    这篇文章主要介绍了c++ vector对象的相关资料,帮助大家更好的理解和学习使用c++,感兴趣的朋友可以了解下
    2021-02-02
  • C语言控制台实现字符飞机大战

    C语言控制台实现字符飞机大战

    这篇文章主要为大家详细介绍了C语言控制台实现字符飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 双向链表插入删除基本应用介绍

    双向链表插入删除基本应用介绍

    本文将详细介绍建立双向链表,实现对双向链表的插入,删除操作,需要了解的朋友可以参考下
    2012-11-11
  • C++实现LeetCode(62.不同的路径)

    C++实现LeetCode(62.不同的路径)

    这篇文章主要介绍了C++实现LeetCode(62.不同的路径),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • 详解C语言求两个数的最大公约数及最小公倍数的方法

    详解C语言求两个数的最大公约数及最小公倍数的方法

    这篇文章主要介绍了C语言求两个数的最大公约数及最小公倍数的方法,辗转相除法和辗转相减法在解决这种问题时最常用到,需要的朋友可以参考下
    2016-03-03

最新评论