从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. Jmeter入门10 jmeter加密串处理方式2:BeanShell PreProcessor

    上一个博客讲了方式一:函数助手__digest加密,BeanShell PreProcessor也可以用java代码进行处理 线程组.参数.请求都直接使用上一个博客的. 第一步 添加BeanShell ...

  2. linux系统(CentOS)下安装PhantomJS

    1.查看linux系统位数,来判断下载适配的PhantomJS: 输入命令:# lsb_release -a 2.下载PhantomJS: 从官网http://phantomjs.org/downlo ...

  3. 【BZOJ1171】大sz的游戏(线段树+单调队列)

    点此看题面 大致题意: 有\(n\)个点,两点间最大通讯距离为\(L\).已知除\(1\)号点外第\(i\)个点能够发出和接收的信号区间\([l_i,r_i]\)以及到\(1\)号点的距离\(dis_ ...

  4. 【[SCOI2007]修车】

    题目 只能做网络流度日了 当然是要对每个修车的人拆点,把每个人拆成\(n\)个点用于接收不同时刻的车 每个车\(i\)向每个时刻\(k\)的人\(j\)连边,边权为\(t[i][j]*k\)这样就是这 ...

  5. 【转】CommonJS,AMD,CMD区别

    学得比较晕,再次看commonjs,amd, cmd时好像还是没完全弄清楚,今天再整理一下: commonjs是用在服务器端的,同步的,如nodejs amd, cmd是用在浏览器端的,异步的,如re ...

  6. java实现按拼音排序

    List<WaPayFileVO> list =(List<WaPayFileVO>) dao.execQueryBeanList(pagesql, params.toArra ...

  7. java递归菜单树转换成pojo对象

    package com.cjonline.foundation.authority.pojo; import java.util.ArrayList; import java.util.Collect ...

  8. input按钮选择功能

    <p> <input type="checkbox" class="ischecked" id="is_pinkage" ...

  9. 菜鸟笔记 -- Chapter 09 常见类和接口

    Java为我们提供了丰富的jar包支持,这其中很多都是我们日常开发所必须的,了解这些包和类,十分有助于我们的开发,深度了解源代码也有助于我们代码的优化和提高;JDK1.8为我们提供了多于4000个类与 ...

  10. UITableView的plain样式下,取消区头停滞效果

    核心代码 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGFloat sectionHeaderHeight = sectionH ...