现在的位置: 首页 > 综合 > 正文

第二节 c++概述(下)

2018年09月13日 ⁄ 综合 ⁄ 共 1504字 ⁄ 字号 评论关闭
文章目录

带默认参数的函数

在说明函数原型或者定义函数时,可为参数指定缺省值

void  showmsg(char * text, int length=-1,int color=0);

 

作用域::

在变量名前冠以作用域运算符::,来访问全局变量

 

 

无名联合

联合(union)C/C++里面见得并不多,但是在一些对内存要求特别严格的地方,联合又是频繁出现

 

无名联合定义在一个结构或类类型的内部,在关键字union后面没有给出名字

它可使一组数据项共享统一内存

其成员直接作为所在结构或类中的成员来使用

 

struct worker

{

    char num[6];

    char name[12];

    shor kind;

    union

    {

        char cadre[7];

        char teacher[12];

        short worker;

    };

};

 

struct worker employee;

employee.cadre = kezhang;

 

 

 

强制类型转换

int i = 10;

float x = float(i);  //类型名作为函数名使用

 

 

newdelete

动态分配和删除存储块

new分配一个足以放下指明类型对象的存储空间,然后返回该存储块的首地址

delete作用于指向该存储块的指针,删除该存储块

 

struct node

{

    char *string;

    int value;

}

node *pnode;

pnode = new node;

pnode ->value = 1;

delete pnode;

 

可以用new为数组动态分配内存空间

必须提供所有维的大小

int *pi = new int[10];

int *pi = new int[2][3][4];

delete []p;    //释放动态分配的数组空间,可不指明大小

 

在为简单变量分配存储空间时可进行初始化

int *p;

p = new int(99);

 

不能对动态分配的数组初始化

 

new分配空间时,如没有足够的内存返回null,所有要检查

int *p;

p = new int(99);

if  (!p)

{

    cout<<allocation failure\n;

}

引用

是某个变量的别名

int i = 5;

int &j = i;

 

如果引用不是作为函数的参数也不是作为函数的返回类型,它只是普通变量的引用,必须在声明它是引用的时候进行初始化

 

int i = 5;

int &j = i;

int &j2 = j;  //

 

int &rint = 5;  //错 不能赋常量

int &b[3];  //错 不能建立引用数组

int &*p;  //错 不能建立引用的指针

int &&r;  //错 不能建立引用的引用

 

引用不能被重新赋值

引用的地址就是引用变量的地址

引用比指针更直观

若将函数说明为一个引用类型,目的是将该函数用在赋值运算符的左边

int &max(int &num1,int &num2);

int &mix(int &num1,int &num2);

 

int num1 = 2;

int num2 = 4;

max(num1,num2) = 0;

 

除了是void类型外的类型都能有引用

 

引用和const连用防参数被修改

 

 

 

void型指针

表示通用型的指针,任何类型的指针都可以赋给它

void *pc;

int i = 22;

char c = aa;

pc = &i;

cout<<*(int*)pc<<endl;

pc = &c;

cout<<*(char*)pc<<end;

 

抱歉!评论已关闭.