C++语言学习的一点心得(蜻蜓点水,后面会不断更新学习体会)

 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,虚基类,虚基类:在访问存在二义性时会出现,虚函数:重载的一种形式,运行时的动态编联,虚不虚不知道,但是确实有许多虚幻的影子哈哈  C++语言学习的一点心得(蜻蜓点水,后面会不断更新学习体会)_第1张图片 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



 

你可能感兴趣的:(编程)