zoukankan      html  css  js  c++  java
  • C++ 与Java差异总结

    工作需要,要学习Qt,之前学过Java,我想C++和Java对比着来学习应该可以很快上手。

    C++的核心概念:编译单元,头文件,目标文件,库

    Qt:信号和槽机制,foreach

    Qt中没有用到的c++概念:模板类,模板函数的定义    共用体类型,异常   这三个就放在以后再学

    差异:

    1. C++不会在运行时检验数组是否越界,没有垃圾回收机制

    2.C++没有为所有的类提供一个可以从中继承出来的一般类object。

    3.Qt则为所有的类型提供了一个简单的基类

    4.Java中的“接口”的概念,只能用C++的纯虚函数来表示

    5.C++不允许在类定义中初始化成员变量

    6.C++中没有能够只想基类的super关键字,如需调用,可以在这个函数的名字前加一个由基类的名字和“::”操作符构成的前缀

    7.C++支持多重继承,一个类可以同时从多个类中派生出来

       语法形式:  class DevicesClass: public BaseClass1,public BaseClass2,...,

                     publicClassN

            {

            ...

            };

    8.C++支持局部对象和全局对象。因为这一支持,C++也提供了自动构造和析构。这导致了对构造函数和析构函数的调用,(对于堆对象)就是内存的分配和释放

    9.在C++中,指针就是一个可以存储对象的内存地址的变量。在概念上与Java和C#中的引用非常相似,只不过还可以使用指针遍历整个内存

    10.C++也支持“引用”的概念,引用存储的也是一个对象的地址值

        “引用”和“指针”的不同点: 

                 1> 声明用的是“&”而不是“*”

                 2> 引用必须是初始化过的,且不能再赋值

                 3> 可直接访问与引用相关联的对象,无“*”或“->”这样的特殊语法

                 4> 引用不能为空

    11.C++数组大小必须是一个常数值

        如果想要创建可变大小的数组:

                1> int *fibonacci = new int[];

                2>std::vector<int>fibonacci(n);//使用标准std::Vector<T>类

                3>QVector<int>fibonacci(n)     //使用Qt的QVector类

    12.C++中引用了4种具有准确语义的新强制转换类型

                1>static_cast<T>()

                2>dynamic_cast<T>()

                3>const_cast<T>()

                4>reinterpret_cast<T>()

    13.C++允许重载函数,另外还支持运算符重载

    14.C++中所有的类型都可以用作“引用类型”,并且那些具有复制性的类型也还可以用作“值类型”

          int *i = new int(5);

          int *j = new int (10);

          *i = *j;

          

      

  • 相关阅读:
    读书笔记 effective c++ Item 32 确保public继承建立“is-a”模型
    读书笔记 effective c++ Item 31 把文件之间的编译依赖降到最低
    读书笔记 effective c++ Item 30 理解内联的里里外外 (大师入场啦)
    程序猿开发语言投票
    读书笔记 effective c++ Item 29 为异常安全的代码而努力
    读书笔记 effective c++ Item 28 不要返回指向对象内部数据(internals)的句柄(handles)
    C++ 11和C++98相比有哪些新特性
    读书笔记 effective c++ Item 27 尽量少使用转型(casting)
    如何一步一步用DDD设计一个电商网站(七)—— 实现售价上下文
    如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文
  • 原文地址:https://www.cnblogs.com/sunyoung/p/5975995.html
Copyright © 2011-2022 走看看