当前位置: 首页 > wzjs >正文

淘宝客网站建设教程博客网站登录

淘宝客网站建设教程,博客网站登录,wordpress中文设置方法,沧州软件开发公司从C学C(2) 域运算符 :: 双冒号可以构成域标识符,用于访问指定域中的同名变量。如, 用于区分访问全局变量和局部的同名变量 用于表示类成员 new delete 运算符 new 类似于C中的malloc ,用于利用堆空间创建变量, 但new 一个新对…

从C学C++(2)

域运算符

::

双冒号可以构成域标识符,用于访问指定域中的同名变量。如,

  • 用于区分访问全局变量和局部的同名变量

  • 用于表示类成员

new delete 运算符

new

  • 类似于C中的malloc ,用于利用堆空间创建变量,

  • new 一个新对象的时候,不仅会调用内存分配(operator new),还会调用对应类的构造函数。

  • 另外,new 成功的话,会返回分配的首地址,不成功的话,不会像malloc 一样返回 NULL 而是直接抛出异常。

    int *p = new int(3); // new一个int变量,且初值赋3,()用于赋值初值
    char* pStr = new char[50]; //new一个数组,[]用于分配指针(数组)变量,如果new的新数组需要赋初值的话,需要使用for循环挨个赋值。
    

delete

  • 类似于C中的free ,用于释放堆空间,
  • delete 一个对象的时候,还先调用对应类的析构函数,再执行释放内存的操作(operator delete)
delete p; //释放new到的对象
delete [] pStr; //如果new的是指针(数组),delete时也需要带上[].

函数重载(overload)

相同的作用域,如果两个函数名称相同,而参数不同,我们把它们称为重载overload。

重载的函数必须有不同的形式:

  • 形参数量不同
  • 形参类型不同
  • 形参顺序不同
  • 形参的数量和类型都不同。

静态联合和动态联合

函数重载是静态联合,其实现是在编译时就实现了,通过将不同参数形式的同名函数做名字改编(name managling),不同参数形式的同名函数最终的函数名并不相同,编译器在编译时依靠对参数个数、类型、顺序的识别调用对应的函数

因此,如果同名函数参数的个数、类型、顺序完全相同但返回值不同是非法的,这不是函数重载,因为编译器进行名字改编后是同一个函数,会报错函数重定义

动态联合是指在执行的时候才决定使用哪个函数(在类继承中的函数/方法的继承,或者是virtual 指定的虚函数)。

name managling 和extern “C”

C++中默认会对函数进行名字改编(name managling) , 因此,如果和C混合编写时,实际编译时的名字不是我们所写的函数名,为了利于和C混合编写,可以使用 extern "C" 关键字圈定一个环境,这个环境内的函数不会进行名字改变。通常,我们会将C语言中的函数在.h文件中声明时使用extern "C" 进行圈定,这样C语言中的定义和.h的声明可以对应,在CPP文件中调用时也可以找得到。 如下:

#ifdef _cplusplus
extern "C"
{
#endif#ifdef _cplusplus
}
#endif

带默认参数的函数

函数声明或者定义的时候,可以给形参赋一些默认值口调用函数时,若调用时没有给出实参,贝则按指定的默认值进行工作。需要注意的是:

  • 函数没有声明时,在函数定义中指定形参的默认值。

  • 函数既有定义又有声明时,声明时指定后,定义后就不能再指定默认值

  • 默认值的定义必须遵守从右到左的顺序,如果某个形参没有默认值,则它左边的参数就不能有默认值。

    void function(int a, double b=4.5, int c=3); //正确,合法
    void function(int a=1, double b , int c=3); //错误,会报错
    
  • 函数调用时,实参与形参按从左到右的顺序进行匹配。

同时需要格外注意的一点是,如果重载函数中带有默认值参数,可能会产生二义性,当编译器不知道该使用哪个函数的时候,就会报错,如下是二义性的一个例子:

int add(int x, int y);
int add(int a=5, int b=6, int, c=7);
//调用add的时候,如果如下只传入两个参数,编译无法判断是第一个函数调用,还是第二个函数调用,最后一个参数使用默认值的情况,所以会报错。
add(5,9);
http://www.dtcms.com/wzjs/433225.html

相关文章:

  • 上海网站建设 建站猫网站优化外包价格
  • 做网站项目团队口号系统优化的方法
  • 绵阳定制网站建设广州网站推广服务
  • 电子代加工东莞网站建设品牌推广活动策划案例
  • 宁波网站建设科技有限公司湖南正规关键词优化首选
  • 微信制作网站设计网站优化课程
  • 没有ipc备案的网站放单平台大全app
  • 将网站保存怎么做torrentkitty搜索引擎
  • 深圳购物网站建设公司中国十大关键词
  • 陕西做网站的公司地址线上营销怎么做
  • 文化书院网站建设方案seo搜索引擎优化推荐
  • 越南网站怎么做最基本的网站设计
  • 十堰网站建设是什么怎么做产品推广平台
  • 网站建设如何报价网站备案流程
  • 网站xml地图电商seo与sem是什么
  • 许昌做网站培训心得体会1000字通用
  • 济南网站建设多少钱推广网站排名
  • 专业网站建设办公关键词优化流程
  • 轻淘客cms建站教程一键制作单页网站
  • 电子商务网站建设的风险分析百度热搜广告位多少钱
  • 沧州南皮网站建设北京seo技术交流
  • 内江 网站建设企业网站设计服务
  • 搜网站首页不见了seo国外最好的免费建站
  • 北京企业网站推广所有关键词
  • 佛山著名网站建设公司梁水才seo优化专家
  • 视频背景网站网络营销和电子商务区别
  • html5 网站后台培训心得体会范文
  • 景区网站怎么做新闻头条最新消息
  • 最好的网站建设推广如何创建一个app
  • 本地的佛山网站建设360网站推广费用