C++需要主要的知识汇总

来源:互联网 发布:淘宝卖家催好评用语 编辑:程序博客网 时间:2024/06/05 04:29

先开个博客在这里,碰到问题随时记下。ok!!!!


1,标准C++与C在一些方面的改进

     主函数为int类型,如果程序正常执行则返回0;

     系统头文件不带后缀.h;

     使用系统库时使用命名空间std;

     增加了字符串类型string;


2,常变量

     const  int  a = 3;

     变量的值在程序运行期间不能改变,并且在定义常变量时必须同时对它进行初始化,之后的值不能再改变。因此常变量又称为之都变量。


3,C++在运算时对所有的float类型数据都按double型数据处理。


4,自增运算符和自减运算符,只能用于变量,而不能用于常量或者表达式。结合方向“自右向左”。

      i = 3;  cout<<-i++<<endl;  //输出-3,等价于-(i++)


5,C++将赋值表达式作为表达式的一种,使幅值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句中。


6,逗号运算符的所有运算符中级别最低的。


7,逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。


8,C++不能用cin语句把空格字符和回车换行符作为字符输入给字符变量,它们会直接被跳过。如果想将空格字符或回车换行符(或任何其他键盘上的字符)输入给字符变量,可以用后面介绍的getchar()函数。P53


9,C++新增的逻辑性数据,布尔变量。bool定义:false(假)、true(真)。  在编译系统处理逻辑型数据时,将false处理为0,true处理为1.


10,内置函数可以在声明函数和定义函数时同时写inline,也可以只在函数生命时加inline,而定义函数时不加inline。注意:内置函数不能包括复杂的控制语句,如循环语句和switch语句。P104


11,函数的重载:即对一个函数名重新赋予它新的含义,使一个函数名可以多用。“一物多用”。重载函数的参数个数、参数类型和参数顺序三者中必须至少有一种不同。P106


12,函数模板:实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。这个通用函数就成为函数模板。。。。凡事函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只须在模板中定义一次即可。。。。它只适用于函数体相同、函数的参数个数相同而类型不同的情况。P107

定义函数模板的一般形式:

  template  <typename T>

或:

 template  <class T>


13,有默认参数的函数,指定默认值的参数必须放在形参表列中的最右端,否则出错。。。在调用有默认参数的函数时,实参的个数可以与形参不同,实参未给定的从形参的默认值得到值。P109


14,一个函数不能既作为重载函数,又作为有默认参数的函数。P110


15,外部函数:extern声明或者直接缺省默认为外部函数。  

       内部函数(静态函数):static只能被本文件中其他函数所调用。


16,在程序中往往依靠检测'\0'的位置来判定字符串是否结束,而不是根据数组的长度来决定字符串的长度。P143


17,如果一个字符数组中包含一个以上'\0',则用cout输出时遇到第1个'\0'时输出就结束。P145


18,C++处理字符串提供了一种心得数据类型——字符串类型(string类型)。P149


19,引用声明符

.1 区别引用声明符&和地址运算符&。出现在声明中的&是引用声明符,其他情况下的&是地址运算符。

.2 引用不是一种独立的数据类型。对引用只有声明,没有定义;既必须先定义一个变量,然后声明对该变量建立一个引用(别名)。

.3 声明一个引用时,必须同时使之初始化,即声明它代表那一个变量。

.4 在声明一个引用后,不能再使之作为另外一个变量的引用。

.5 不能建立引用数组,不能建立引用的引用。

.6 引用并不开辟内存空间,它和被引用的变量指向同一片内存空间。

.7 以引用作为形参,在虚实结合时建立变量的引用,使形参名作为实参的“引用”,即形参成为实参的引用。这是一种地址传递方式。P187


20,C++提供了较简单而功能较强的运算符new和delete来取代malloc和free函数。

   new  类型 [初值]

   delete  指针变量

用new分配数组空间时不能指定初值。


21,面向对象程序设计有4个主要特点:抽象、封装、继承、多态。P223


21,如果在类的定义中既不指定private,也不指定public,则系统就默认为是私有的。P232


22,指向对象成员函数的指针

定义:

  数据类型名(类名::*指针变量名)(参数表列)

初始化:

  指针变量名 = &类名::成员函数名;

注意:&C++一般都加上。不要问为什么,语法规定。P273


23,在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this。它是指向本类对象的指针,它的值是当前被调用的成员函数所在的对象的起始地址。


24,常对象  P277

定义:  下面两种方法等价的。

       类名  const  对象名[(实参表)];

       const  类名  对象名[(实参表)];

常成员函数:

   返回类型  函数名([(形参表)]) const;

注意:

.1 常对象不能调用对象中的普通函数;

.2 常成员函数不能修改对象的数据成员。

常成员函数是常对象唯一的对外接口。。。。。


25,静态成员函数 P292

注意:

.1 与静态数据成员不同,静态成员函数的作用不是为了对象之间的沟通,而是为了能处理静态数据成员。

.2 静态成员函数是类的一部分而不是对象的一部分,即静态成员函数没有this指针,由此决定了静态成员函数不能访问本类中的非静态成员。这是静态成员函数和非静态成员函数的根本区别。

.3 注意第二条并不是绝对的。静态成员函数只是不能进行默认访问,因为无法知道应该去找那个对象。如果一定要引用本类中的非静态成员,应该加对象名和成员运算符"."。


26,const

.1 定义常对象

      类名  const 对象名[ (实参表) ]       或者       const 类名 对象名[ (实参表) ]

     常对象不能调用常对象中的普通成员函数和调用的常成员函数不能修改对象的数据成员,这两点可以保证常对象中的数据成员的值绝对不会改变。

常对象的数据成员都是常数据成员!!!!

.2 常对象成员

    其作用和用法与一般常变量相似,用关键字const来声明常数据成员。常数据成员的值是不能改变的。

   只能通过改造函数的参数初始化表对常数据成员进行初始化,任何其他函数都不能对常熟据称有幅值。

.3 常成员函数

   类型名  函数名(参数表名) const

在声明函数和定义函数时都要有const关键字。

常成员函数只能引用本类中的数据成员(普通数据成员和const数据成员),不能修改它们的值。

常成员函数不能调用另一个非const成员函数。


















0 0
原创粉丝点击