java程序员快速学c++

java程序员快速学c++


java程序员学cplus,其实大部分的语法是一样的,但是对java程序员来将,还是有写难点需要注意。看完这些还不能保证会写c++程序,不过一般的程序可以看懂,要写的话要多多练习。
---这是一个学习笔记,作为自己学习的记录,还没有完成,在随后的过程中进行完善。

一、头文件部分:
1、cplus中的函数最好要先声明,声明最好要放入头文件中,这样在cpp中就可以不用管函数定义的位置,这时头文件还类似于java中接口的作用;
2、全局变量在头文件中声明,声明时有初始化的是定义声明,其他声明是引用声明。C语言的所有文件之中,只能有一个定义声明。变量一般不要定义在.h文件中。
3、定义声明数组时,应用声明最好不要用指针。连接程序并不把指针与数组等同,也不把他们当做同一个定义,而是认为是不相关的两个定义。
4、写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不写出具体的实现。
5、在写头文件时需要注意,在开头和结尾处必须按照如下样式加上预编译语句(如下):
#ifndef CIRCLE_H
#define CIRCLE_H
//你的代码写在这里
#endif
这样做是为了防止重复编译,不这样做就有可能出错。至于CIRCLE_H这个标识任意取名,不过要唯一,标识的命名规则一般是头文件名全大写,前后加下划线,并把文件名中的“.”也变成下划线。http://blog.csdn.net/Super_Level/article/details/21299481
比如你有两个C文件,这两个C文件都include了同一个头文件。而编译时,这两个C文件要一同编译成一个可运行文件,于是问题来了,大量的声明冲突。头文件的内容放在这里后,冲突问题编译器就可以解决。
6、源文件主要写实现头文件中已经声明的那些函数的具体代码。需要注意的是,开头必须#include一下实现的头文件,以及要用到的头文件。那么当你需要用到自己写的头文件中的类时,只需要#include进来就行了。http://blog.csdn.net/cyp331203/article/details/22606249
7、#define。C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。http://www.cnblogs.com/ben0721/articles/1938639.html
“宏”分为有参数和无参数两种。
#define 标识符 字符串
#define 宏名(形参表) 字符串
“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。
8、标准宏。
ANSI标准说明了五个预定义的宏名。它们是:__LINE__,__FILE__,__DATE__,__TIME__,__STDC__
C++中还定义了__cplusplus
如果编译器不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序也许还提供其它预定义的宏名。
__LINE__及__FILE__宏指示,#line指令可以改变它的值,简单的讲,编译时,它们包含程序的当前行数和文件名。
__DATE__宏指令含有形式为月/日/年的串,表示源文件被翻译到代码时的日期。__TIME__宏指令包含程序编译的时间。时间用字符串表示,其形式为:分:秒
__STDC__宏指令的意义是编译时定义的。一般来讲,如果__STDC__已经定义,编译器将仅接受不包含任何非标准扩展的标准C/C++代码。如果实现是标准的,则宏__STDC__含有十进制常量1。如果它含有任何其它数,则实现是非标准的。
__cplusplus与标准c++一致的编译器把它定义为一个包含至少6为的数值。与标准c++不一致的编译器将使用具有5位或更少的数值。可以定义宏,例如:
当定义了_DEBUG,输出数据信息和所在文件所在行。


二、源文件部分
1、\ 在cplus中表示该行没有结束;
2、 #ifndef#define#endif实现条件编译,
#ifdef 标识符 
程序段1 
#else 
程序段2 
#endif 
当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 这里的“程序段”可以是语句组,也可以是命令行。这种条件编译可以提高C源程序的通用性。如果一个C源程序在不同计算机系统上系统上运行,而不同的计算机又有一定的差异。http://blog.csdn.net/Super_Level/article/details/21299481


3、语言中的符号意义和部分关键字
■->C++指针调用的意思。指向结构体或者类指针用来引用对象里面变量时用。
■::作用域,声明该符号后面函数、数据等属于哪个类,一般用于静态;
■:用于继承父类: class lzbb:public lzb; lzb父类lzbb子类; c++支持多继承;
基类和派生类构造函数: 
当调用派生类时首先会执行基类构造函数执行派生类构造函数所我们想给基类构造函数参数传值也用冒号: 
基类构造函数:lzb(int a){cout<派生类构造函数:lzbb(int a,int b); 
当我们开始调用基类构造函数首先调用了lzb我们给lzba赋值 
下写法:lzbb::lzbb(int a,int b):lzb(a){cout<此时我们传实参时首先会把a值赋值给lzba输出b等于传入给b实参值;
http://zhidao.baidu.com/question/2951346.html
■.对象中的成员,用于非静态的调用。
■typeof取表达式或表达式值的类型,和模板的配合使用比较多;
■typeid返回给一个type_info 定义过的对象的那个对象的类型;
■typedef允许你从一个现有的类型中创建一个新类型;
■typename能用来在中 template 描述一个未定义类型或者代替关键字class;


4、template <class T> 或template<typename T> class 标明下面的参数是属于什么类型的。这个在java中也是有的。
模板就是函数或类,模板可以解决同类型问题。(这块内容还是比较多,一笔带过先)。


5、inline函数也所谓内联函数,不建议多使用。


6、指针是内存单元的地址,数据是内存单元的内容。(未完!!)



(未完!!)




展开阅读全文

没有更多推荐了,返回首页