从C到C++ (2)

一、    C++中增加了作用域标示符 ::

1、     用于对局部变量同名的全局变量进行访问。

2、     用于表示类成员。

二、    new、delete运算符

1、       new运算符用于创建堆空间,成功返回首地址失败抛出异常(C++有异常处理机制,C语言中无此机制所以结果要与NULL比较),语法:

指针变量 = new 数据类型;

指针变量 = new 数据类型[长度]

例如:

int *p; p = new int;           // or p = new int(50),“()”表示对这个空间初始化

char *pStr; pStr = new char[50];

new 的3个用法:

1)new operator       分配内存 + 调用构造函数

2)operator new       只分配内存

3)placement new    不分配内存,在已分配的内存中创建对象

2、       delete运算符 用于释放堆空间,语法:

delete 指针变量

delete [] 指针变量

三、    C++支持函数重载

相同的作用域,如果两个函数名相同,而参数不同,我们把它称之为重载overload。函数的重载又可以称为函数多态(静态多态,编译时确定函数入口地址)。

C++中为了支持重载,需要进行name managling(名字改编),重载函数会被编译器进行名字改编。如果想让C++编写的函数能被C调用的话,在函数名前加 extern”C”(表明此函数不进行名字改编)。通常这段代码放在.h文件中,此.h文件既可以被C引用也可以被C++引用,也就是说C++编写的一些函数可以被C调用只需要提供给它头文件即可。例:

#ifdef __cpluscplus

extern “C”

{

#endif

#ifdef __cpluscplus

}

#endif

最新文章

  1. tomcat之Session的管理
  2. nslookup命令
  3. 89c51中断入口地址表
  4. Linux phpwind论坛的安装
  5. 手动实现WCF[转]
  6. 在delphi的exe文件中嵌入另外一个exe文件
  7. Windows优化大师最新版 V7.99 Build 12.604发布
  8. linux下进度条的简单实现
  9. 使用jquery的js的页面实现例子
  10. openstack使用openvswitch实现vxlan组网
  11. Matplotlib库的使用
  12. [Swift]LeetCode481. 神奇字符串 | Magical String
  13. C#基础学习第一天
  14. JS操作数组-2
  15. java自定义注释
  16. 论YUV422(YUYV)与YUV420相互转换
  17. 常用的 git 命令
  18. mac CodeIgniter和EasyWeChat 开发微信公众号
  19. Python:高效计算大文件中的最长行的长度
  20. vistual studio 去除 git 源代码 绑定

热门文章

  1. 读REDIS数据结构
  2. 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下
  3. Python-Url编码和解码
  4. SpringMVC学习记录六——异常定义和上传图片
  5. 【luogu P4462 [CQOI2018]异或序列】 题解
  6. 解决:Visual Studio 启动就报错退出
  7. 关于ProjectServer调用PSI 报Error GeneralReadOnlyColumn (20005) - column TS_ACT_FINISH_DATE错的解决方案
  8. Hibernate知识点小结(二)
  9. JavaScript-语法专题
  10. kindeditor简单使用