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

学生想搭建网站怎么做/我要发布信息

学生想搭建网站怎么做,我要发布信息,网站备案一般由谁来做,仿腾讯网站源码我们知道C中const可以用于修饰普通变量、指针变量、引用变量、函数入参以及函数名,例如: //常量 const int nMaxNum 5; //修饰引用 const int& refInt nMaxNum; //修改指针 const int *p &nMaxNum;class CTest { public://修饰入…

我们知道C++中const可以用于修饰普通变量、指针变量、引用变量、函数入参以及函数名,例如:

//常量
const int nMaxNum   = 5;
//修饰引用
const int& refInt   = nMaxNum;
//修改指针
const int *p        = &nMaxNum;class CTest
{
public://修饰入参void fun1(const int& a){cout << "i am const reference param" << endl;}//修饰函数,常成员函数virtual void print() const{cout <<"i am print" << endl;}
}

以上const用法均是正常的,编译器没有报错,我的系统配置是VS2008+Win7系统。

当const遇上函数重载会是什么情况呢,下面一起见证奇迹!

const修饰函数入参

直接上代码,示例如下:

class CTest
{
public://入参数是修饰引用void Refernce(const int& a){cout << "i am const reference param" << endl;}void Refernce(int& a){cout << "i am reference param" << endl;}//入参数是修饰指针void Ptr(const int* a){cout << "i am const ptr param" << endl;}void Ptr(int* a){cout << "i am ptr param" << endl;}//修饰变量,var不是函数重载,编译错误。//“void CTest::Var(int)”: 已经定义或声明成员函数void Var(int a){cout << "i am int para" << endl;}void Var(const int a){cout << "i am const int param" << endl;}//修饰变量名,编译报错//void CTest::ConstPtr(int *const )”: 已经定义或声明成员函数void ConstPtr(int * const a);void ConstPtr(int * a);
};

测试代码&结果:

CTest test;
const int a = 5;
test.Refernce(a); //->Refernce(const int& a)int b = 6;
test.Refernce(b); //->Refernce(int& a)const int c = 8;  
test.Ptr(&c);    //->Ptr(const int* a)int d = 7;       
test.Ptr(&d);    //->Ptr(int* a)
test.Var(c);     //var函数编译报错,void CTest::Var(int)”: 已经定义
test.Var(d);

从以上几个例子可以发现:const修饰函数入参时,仅对指针和引用有效,其他类型是无效的。

const修饰函数名

在类中的函数是我们叫做类成员函数,若某个函数是类成员函数,则该函数可用const关键字去修饰,用const修饰的成员函数叫做常成员函数;该函数不允许对成员变量进行修改。例如:

class CBase
{
public://修饰函数,常成员函数virtual void print() const{cout <<"i am base" << endl;}
};
class CDeriver:public CBase
{
public://普通成员函数virtual void print(){cout <<"i am derive" << endl;}
};

测试代码:

CBase* pBase = new CDeriver;
pBase->print();delete pBase;
pBase = NULL;

问:该测试代码输出结果是什么?
答:实际上输出结果是”i am base”

若大家知道虚函数的知识点,第一反应则认为CDeriver重写了print函数,因此输出“i am derive”;

实际上CDeriver是在自己的范围内重新定义了一个同名函数,该函数不是常成员函数,并没有重写基类的print函数,因此pBase->print()调用的是基类中的print函数,证据如下:

这里写图片描述

总结

  1. 进行函数重载时,const关键字修饰的是引用参数或者指针参数,是有效的函数重载,否则编译器报错。
  2. 在成员函数中,有const关键字修饰的和无const关键字修饰的成员函数,实际上是两个不同的函数。
http://www.jmfq.cn/news/4995523.html

相关文章:

  • 如何创建一个html网页/科学新概念seo外链
  • jsp网站开发论文2017/岳阳网站设计
  • 平邑做网站/百度电商推广
  • 兰州网站建设与优化推广/网页设计个人网站
  • 上饶高端网站建设/万网
  • 网站建设 大公司小公司/网络推广软件免费
  • 做黄色网站会受到什么惩罚/精准引流推广团队
  • 宜昌营销网站建设/网络营销与直播电商专业学什么
  • 展示型网站建/站长seo综合查询
  • 做网站和做系统有什么不同/网站推广优化教程
  • 网站开发需要什么资质/博客推广的方法与技巧
  • 黔东南网站建设/关键词排名监控
  • 专业的深圳网站建设公司排名/人大常委会委员长
  • 如何用ps设计网站首页/化学sem是什么意思
  • 东莞优化网站建设/北京搜索引擎关键词优化
  • 公司做网站让拍照备案/站长之家官网
  • 苹果cms/广州seo诊断
  • javascriptjava免费观看/seo教学平台
  • 寻花问柳专注做一家男人爱的网站/百度发广告怎么发
  • 免费网站正能量入口下载/seo网站优化推广怎么样
  • 网站备案工信部/重庆seo技术教程博客
  • 针对网站开发软件 代替手动/网站收录优化
  • 简述网站规划的主要任务/优化资源配置
  • 怎么开发网站平台/seo推广公司
  • 跨境电商网站开发文档/提高工作效率的重要性
  • 做网站原型图/网站推广的软件
  • 网站临时会话/小程序开发一个多少钱啊
  • 别人帮做的网站到期续费/seo查询爱站网
  • wordpress仪表盘/seo交互论坛
  • 企业介绍ppt案例欣赏/昭通网站seo