从Java到C++
陌尘(MoChen)
程序员码龄: 14+年
IT从业经验: 10+年
曾任职单位: 北大方正,阿里巴巴
出版的书籍: 《人人都懂设计模式》、《Python 設計模式》
擅长的语言: C++/Python/JavaScript
涉及的技术: 电子书SDK,PC户端开发,Linux应用开发,前端开发
涉及的行业: 电子出版,在线教育,文档协调,智能机器人
展开
-
c/c++中#include <>与#include""区别
原文:http://kooyee.iteye.com/blog/340846而""首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于include自定义的头文件,让系统优先使用当前目录中定义的。 When writing your C program, you can include files in two ways. The first way is to转载 2014-04-10 19:43:52 · 11225 阅读 · 0 评论 -
从Java到C++——指针与引用
从Java到C++——指针与引用C++即有指针又有引用,而且很多时候具有相似的功能,常常容易让人混淆,着实让人头痛。用两句通俗的话说明两者本质的含意:引用就是一个变量或对象的别名(引用的本质是一个对象);指针是一个段内存空间的地址(指向存储一个变量值的空间或一个对象的空间);如下图所示: C++中的引用与指针引用引用是为变量或对象起的另外一个别名,定义形式:T& v; T为类型,v为变量名。原创 2014-07-30 22:50:48 · 6723 阅读 · 0 评论 -
从Java到C++——常量(const)的高级应用
看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性和高效性。所以很多C++程序设计书籍建议:“原创 2014-06-08 23:27:06 · 4266 阅读 · 0 评论 -
从java到C++——new和delete的动态内存管理
C++中定义了两个运算符来分配和释放内存:new分配内存,delete释放内存。 使用new来动态分配和初化对象在自由空间分配的内存是无名的,因此new无法为其分配的对象命名,而是返回指向该对象的指针。new 可以分配基本的数据类型变量,也可以为类分配对象的内存空间,然后返回指向该对象的指针。如【例1】:int *ip = new int;原创 2014-04-06 12:05:57 · 7603 阅读 · 0 评论 -
从Java到C++——数组的用法
数组是一种非常有用和常用的数据类型。在Java中数组的定义和使用相对简单,语法较为宽松,但在C++中数组的用法就比较多样,相对复杂了!Java中的数组一维数组一维数组的形式(1): int a[]; a = new int[5]; 其中定义数组int a[]时并不为数组分配内存,只是声明了(将要使用)int类型数组。只有在创建数组a = new int[5]原创 2014-04-07 13:05:15 · 3949 阅读 · 1 评论 -
从Java到C++——union的用法
你是否记得union这个东西,在上大学的时候我们用的是潭浩强的《C语言程序设计》,里面把它译作是共用体。“共用体”,虽然翻译得特别别扭,但却正好说明了它的特性和用途。联合(union,也有翻译成共用体的)是一种特殊的结构(或说类)。一个union可以有多个数据成员,但是在任意时刻只有一个成员有值。Union具有以下几个特点:1.一个union可以有多个不同类型的数据成员, 但在某一时刻只有一个成员原创 2014-06-22 18:14:03 · 7674 阅读 · 0 评论 -
从Java到C++——基本数据类型
基本数据类型是C++最基本的内容,虽然各种计算机语言的基本数据类型的含意和用法大体相同,但各种语言下基本数据类型的字节大小,数值范围等是不一样的,这也是程序开发都必须要了解的。 Java中有8种基本的数据类型,详细内容请参见《Java中的50个关键字》 ,C++中基本数据类型的各类就多了。详细如下:C++中,基本数据类型也称内置类型,有算术类型和空类型。空类型(void)没有原创 2014-04-07 20:29:34 · 4058 阅读 · 0 评论 -
从Java到C++——从union到VARIANT与CComVariant的深层剖析
我第一次用VARIANT和CComVariant的时候完全不明白它是怎么回事,为它什么数据类型都可以存放,什么数据都可以被可以初始化?里面到底是怎么实现的?感觉又神奇又迷惑!我们在上一节中讲了union的用法之后你也许想到了大概是怎么回事了。没错,union可以帮我们实现这一个神奇的功能。而且VARIANT定义中确实使用了union。如果你还不明白,那我们就自己来模拟实现一个类似于CComVari原创 2014-06-29 17:57:18 · 3189 阅读 · 0 评论 -
从Java到C++——常量值的定义和基本用法
从Java到C++——常量值的使用和定义 程序中常常会用到常量值来定义一些相对固定的有实际意义值。比如,你要定义一个扑克牌的类,扑克牌有花色和数字两种属性,然而花色只有红桃(红心)、方块、黑梅、黑桃四种,这时你就可以定义四个常量分别表示这四种花色,这样定义的好处是:每次给花色赋值时只用到常量值的名称就可以,不易出错;如果某一天扑克出现新玩法需增加一个花色,只有增加一个常量值就可以,扩展性强;原创 2014-06-08 20:36:12 · 2044 阅读 · 0 评论 -
从Java到C++——常量的使用规则
常量是一种标识符,它的值在运行期间恒定不变。C语言用 #define来定义常量(称为宏常量)。C++ 语言除了 #define外还可以用const来定义常量(称为const常量)。 一、为什么需要常量如果不使用常量,直接在程序中填写数字或字符串,将会有什么麻烦?(1).程序的可读性(可理解性)变差。程序员自己会忘记那些数字或字符串是什么意思,用户则更加不知它们从何处原创 2014-05-31 23:05:44 · 2291 阅读 · 0 评论 -
从Java到C++——常量值的使用和定义
程序中常常会用到常量值来定义一些相对固定的有实际意义值。比如,你要定义一个扑克牌的类,扑克牌有花色和数字两种属性,然而花色只有红桃(红心)、方块、黑梅、黑桃四种,这时你就可以定义四个常量分别表示这四种花色,这样定义的好处是:每次给花色赋值时只用到常量值的名称就可以,不易出错;如果某一天扑克出现新玩法增加一个花色,只有增加一个常量值就可以,扩展性强;Java中常量的定义 Jav原创 2014-04-10 15:37:17 · 2843 阅读 · 0 评论 -
从Java到C++——枚举类型的使用
引言今天做项目想用一个枚举类型,本来想这样写的:enum Move {left, right, up, down};Move move = Move.left;if(move == Move.left){ cout << "move up" << endl;}结果不行,这是怎么回事,原来在C++里不允许这样使用,C++中枚举的用法和Java还不一样。然后我的纳闷了,原创 2014-03-21 20:51:12 · 6544 阅读 · 0 评论 -
Java与C++的区别
因为即会C++又懂点Java的缘故,就朋友的邀请,共同合作一个项目——“把一个Java工程的项目转成C++”。这个项目前前后后历时约两周,采了不少坑……现把Java和C++的主要区别总结一个,从中吸取教训。1.定义变量和数组时,Java默认初始化,C++不初始化;在类中,方法中定义变量、动态数组时,Java默认初始化,C++不初始化。 如下Java代码public class Test {原创 2016-07-04 20:38:14 · 4473 阅读 · 2 评论