const 常量, java 里面有 final 等等
内函数 inline ,inline float circle(float r){return 3.1416*r*r} ,内置函数中不能定义任何静态变量,不能有复制的流程控制,不能是递归的,不能说明数组。貌似跟java 里面的final也相似。
作用域运算符:: ,如果希望在局部变量的作用域内使用同名的全局变量。 ::val 代表的就是全局变量val
无名联合 union, 他可以使一组数据项 共享一内存地址。 union {int il; float f;}
运算符 new与delete, C语言用 malloc()和free() 动态分配内存。 new的使用方法 int*p ; p = new int; delete p;
引用 & 一种指针吧,自动间接引用,不必使用间接引用运算符 *,就可以得到一个引用值。主要用做函数参数以及函数的返回类型。在声明时必须进行初始化。
int i =5; int &j= i;
结构 struct ,结构是C语言的一种自定义数据类型,可以包含各种不同的数据类型。C++,可以包含函数。 数据成员,函数成员。成员分为私有,公有。公有成员可以被结构外访问
有点注意,在类中,默认的成员是私有的,结构体中,默认是公有的。 这个java是 大大的 不同啊,哈哈~~~
构造函数与析构函数, 构造函数的名字必须与类名相同,拷贝构造函数,int x,y; point(int a ,int b){x=a;y=b} point(const point &p){x=2*p.x; y= 2*p.y} 如何 p1已经存在,就可以通过 point p2(p1) 初始化 p2, 这跟 java 里面的 A() a = new B()相似吧
对象指针 , 使用对象指针时,首先要把他指向一个已创建的对象,然后才能用引用对象成员, class ob; p=&ob; p->show_a();
this指针,这个指针称为自引用指针。每当创建一个对象时,系统就把this指针初始化为指向该对象。 每当调用一个成员函数时,系统就自动把this指针作为一个隐含的参数传给该函数。不同的对象调用同一各成员函数是,C++编译器将根据this指针所指向的对象来确定应该引用哪一个对象数据成员。
static 无论建立多少个类的对象,都只有一个静态数据的拷贝, 还有 circle 具有静态生存期,文件作用域。
friend 友元,真的是有缘啊,只要你定义了,谁便你访问。 友元既可以是不属于任何类的一般函数,也可以是 另外一个类的成员函数,还可以是整个的一个类(这个类的所有成员函数都可以成为友元函数)
虚函数virtual,虚基类,虚基类:在访问存在二义性时会出现,虚函数:重载的一种形式,运行时的动态编联,虚不虚不知道,但是确实有许多虚幻的影子哈哈 base int a; 如果访问图"derived a= "<< a 会报错,so 要定义 virtual base
C++中,多态性的实现和联编这一概念有关。静态联编支持的多态性称为编译时多态性,也称静态多态性。C++中,编译时多态性是通过函数重载和运算符重载实现的。动态编联所支持的多态性称为运行时多态性,也称为动态多态性。在C++中,运行时多态性是通过继承和虚函数来实现的。虚函数也是其中体现之一。我们往往在抽象类里面定义虚函数,然后各派生类根据不同的公用重新定义这些虚函数。
template模板,跟java的泛型很相似啊,哈哈,类模板,函数模板,类模板代表一类类,模板类表示某一具体的类。
C++的输入输出系统,你让C打印一个结构体,是不可能的。但是C++可以通过重载<< 来解决。C++中包含几个预定义的流:cin cout cerr clog,两类,streambuf类和ios类
C++文件是一个字符流或二进制流,ofsteam,ifsteam,fstream,他们都是ios类的派生类。文件的操作,必须要包含头文件fstream.h,使用运算符“<<”,">>"然后用fin,fou代替cin,cout
随机读写里面的put指针与个体指针。
有一个链接比较了C++与java ,说是继承关系,哈哈~~~
C++与java比较
http://www.cnblogs.com/cnryb/archive/2011/01/04/2004141.html