从C到C++ (2)
从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
最新文章
- tomcat之Session的管理
- nslookup命令
- 89c51中断入口地址表
- Linux phpwind论坛的安装
- 手动实现WCF[转]
- 在delphi的exe文件中嵌入另外一个exe文件
- Windows优化大师最新版 V7.99 Build 12.604发布
- linux下进度条的简单实现
- 使用jquery的js的页面实现例子
- openstack使用openvswitch实现vxlan组网
- Matplotlib库的使用
- [Swift]LeetCode481. 神奇字符串 | Magical String
- C#基础学习第一天
- JS操作数组-2
- java自定义注释
- 论YUV422(YUYV)与YUV420相互转换
- 常用的 git 命令
- mac CodeIgniter和EasyWeChat 开发微信公众号
- Python:高效计算大文件中的最长行的长度
- vistual studio 去除 git 源代码 绑定
热门文章
- 读REDIS数据结构
- 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下
- Python-Url编码和解码
- SpringMVC学习记录六——异常定义和上传图片
- 【luogu P4462 [CQOI2018]异或序列】 题解
- 解决:Visual Studio 启动就报错退出
- 关于ProjectServer调用PSI 报Error GeneralReadOnlyColumn (20005) - column TS_ACT_FINISH_DATE错的解决方案
- Hibernate知识点小结(二)
- JavaScript-语法专题
- kindeditor简单使用