C++语法记录

回头看了C++的语法基础,与C不同点记录、以及以前不知道的内容记录如下:

 

cout << a << endl; endl表示输出空格,类似\n;

数字后面后缀代表类型;100F,表示float型的100;

隐式类型转换 char

sizeof();返回占据的字节数;

 反斜杠 \ 转义符、续行

stew(n), 输出时候占据n个字符,数字不足的前面用b(空)表示;设置位置小会自动补齐,够输出为止;

setprecision(n),精确几位小数。使用之前先fixed,将科学计数法去掉。

空白符 WhiteSpace , \t,\b,\n 等,使用cin是会自动跳过的,要想录入需要使用 cin.get();(智能读取字符型);

流的忽略。cixp)   其中intExp 是一个整型表达式,也可以是一个整型数值,这个数值表示在一行中忽略的字符的最大数目,比如说intExp=100;还有一个参数chExp,是一个字符表达式。表示如果遇到一个字符值等于chEXP,那么就停止ignore(),如果ignore100个字符之后还没遇到值等于chEXP的字符,那也得停止ignore(),所以100是ignore()所忽略的最大字符数。

C++语法记录_第1张图片C++语法记录_第2张图片

 

函数实参与形参 形参前加& 表示引用,引用的话 实参形参类型必须完全一致,且实参只能是变量。引用的好处是可以返回多个函数值。 (相当于穿进去地址,对地址内数据改变,相当于实参发生了改变)。形参是数组的时候不用加&。

 

局部静态变量:static   作用时间直到内存释放(程序结束),注意,static int n=0; 初始化语句只会执行一次,第一次后会忽略这一句。

 

函数重载:名字可以一样,参数(个数)不同即可。

 

哑元函数:返回值是固定的函数,用于测试以及debug。

 

struct ,未定义具体对象时候不分配内存

对象 (struct) 的集合操作:赋值、作为参数传递(By value or By reference)、作为函数的返回值

eg: student_record student,otherstudent;   student=otherstudent; 内部元素对应赋值。

结构体的嵌套,每一级要用一个.(dot)

 

联合体:union。内部成员共享内存,同时只有一个成员有意义。(避免数据不一致带来的问题)

 

类:

class temp     //类名称。

{

   public:       //此处是公共变量

              void set();

              void write()const;  // 常量函数,对类内部成员只能读,不能写

              mutable int a;      //可变的 ,const函数可以可以对其进行修改

  private:      //class内部才能调用

  protected:  //受保护的成员        

                                //私有和保护的区别:保护可以继承到子类中

 

}

 

this指针:

void TimeType::set(int hours,int minutes,int seconds){   //  :: 定义class内部函数时候要加

     this->hrs = hours;                                                          //this ,当前结构体内部数据,谁调用的就指谁。

}

 

定义类的过程中可以对类中的私有成员进行访问与改变(不是一个,同类型就可以改变)。

 

构造函数:    //构造函数必须和类名字相同,函数不能有类型,可以有不同形参构成重构,不可认为调用

TimeType(){

      hrs=0;mins=0;secs=0;

}

TimeType(int initHers,int initMInus,int initSecs){           //会有初值 

      hrs=inintHers; minus=initMinus;secs=initSecs;

}

 

 

函数重写(funcation override):发生在类的继承时

 

动态数组:cin >> n;    int *p = new int[n];    定义了一个n长的数组 p[0]-p[n-1],用数组定义,使用完要释放指针(delete)

 

结构体(类)数组:

class TimeType

{

    

};

TimeType train[10];  //定义一个是个元素的类数组,每一元素代表一个类

 

内存泄漏:p=new char;  new 新的指针后,最后一定要delete。不然内存越来越少。

 

 

操作符重载:void MyClass::operate = (const Myclass &original){

                           a1=orginal.a1+100;

                       }

这样,两个类 在赋值时,m2=m1;就会按照新定义的 = 来进行运算

 

 

类的三种继承方式:公共public继承、保护protected继承、私有private继承。

两点注意:一父类中的私有不可以被继承; 二、父类被继承到派生类的成员,在派生类中的访问权限是取继承方式和基类(父类)中访问权限较小的访问权限(private

 

 

关于vector ,暂未发现! 接着要找资料

你可能感兴趣的:(C++语法记录)