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

在谷歌上做网站广告要多少钱北京外语网站开发公司

在谷歌上做网站广告要多少钱,北京外语网站开发公司,网站开发的必要性,服务器更改wordpressⅠ. const成员 两种const 我们知道#xff0c;用const修饰 能起到保护#xff0c;使之不被修改的作用。 修饰指针的const有两种位置#xff1a; 我们学过的this指针#xff0c;就被后者所修饰#xff0c;因此无法被修改。 const成员函数 ➡️为了保护函数里的成员用const修饰 能起到保护使之不被修改的作用。 修饰指针的const有两种位置 我们学过的this指针就被后者所修饰因此无法被修改。 const成员函数 ➡️为了保护函数里的成员使不被修改C引入了const成员函数。 “const成员函数” 就是被const修饰的成员函数。 const的存在使我们不能对任何成员进行修改。 ➡️它长这样 void Date::Print() const {…… } 这个函数相当于 void Date::Print(const Date* const this) {…… } ❗注意前后两个const的意义是不一样的。 前者修饰*this保护 this指向的空间的内容 不被修改。 后者修饰this保护this指针不被修改。 ❓这个const的位置好怪啊为啥要放在最末尾而不是开头 const爷就长得怪咋地 不能放开头啊那样const就成修饰返回值的了。 ➡️对比this指针的类型 普通函数类型* const const成员函数const 类型* const ➡️权限问题 就像公司上下级关系权限大的可以调用权限小的 而权限小的不可以调用权限大的。 解释这张图 被const修饰的Print() / d2因为被限制了内容不能修改所以权限相对更低。 未被const修饰的Print() / d1可被修改自由度更高权限相对更高。 彼此的关系就用上下级、平级的关系来理解。 所以const成员函数内部 不可调用 其他非const成员函数 而非const……可调用……const……。 ➡️什么时候加const 如果一个函数不用修改性质是只读的那就加上const来保护。 如果其性质是可读可写那就不能加。 Ⅱ. 取地址运算符重载 先亮身份类的六大默认成员函数之一。 函数名operator 作用自定义类型的取地址 引入 来看这个例子。我们知道自定义类型的运算 需要我们自己去实现 运算符重载运算符同样如此。 而这里我们没写operator那究竟能否取地址成功呢 class Date { public:Date(int year 1900, int month 1, int day 1) {_year year;_month month;_day day;} private:int _year;int _month;int _day; }; ​ int main() { ​Date d1(2000, 1, 1);cout d1 endl;   //前面没写operator//能否取地址成功呢return 0; } 结果 取地址成功 ❓But why 这是因为C很贴心地将 取地址运算符重载 纳入默认成员函数。 也就是说operator 和前几位默认成员函数的福利一样 如果我们写了编译器会自动调用 如果没写编译器会自动生成并自动调用。 ❓取地址运算符重载长啥样 Here comes the model Date* operator() {return this; } 取地址运算符重载分两种 1. 普通对象 2. const修饰的对象 普通对象取地址 很easy不详讲了。我们来手动实现一下 class Date { public:Date(int year 1900, int month 1, int day 1) {_year year;_month month;_day day;} ​Date* operator() {return this;   //this就是它的地址} ​ private:int _year;int _month;int _day; }; ​ int main() {Date d1(2000, 1, 1);cout d1 endl; ​return 0; } const对象取地址 当对象被const修饰时会特殊一些。 来看d1和d2的对比 class Date { public:Date(int year 1900, int month 1, int day 1) {_year year;_month month;_day day;}void Print(){printf(%d-%d-%d\n, this-_year, this-_month, this-_day);} ​ private:int _year;int _month;int _day; }; ​ int main() {Date d1(2000, 1, 1);     //普通对象d1d1.Print(); ​const Date d2(2077,1,1); //被const修饰的对象d2d2.Print(); ​return 0; } 然而压根编译不过去 普通对象d1没问题而const修饰的d2却亮红牌了为啥 其实const成员报错的原因往往是……权限的放大 来分析下 Print函数中this指针的类型是Date* const 而d2的类型是const Date* const 所以说d2去调用Print()是一次权限的放大是以下犯上大逆不道 对此解决方案是 const修饰的对象应调用const取地址运算符重载 即d2应调用 void Print() const{printf(%d-%d-%d\n, this-_year, this-_month, this-_day); } 什么时候要手动实现operator ? 我们尽可放宽心即使是const对象编译器仍会自动生成 相应的const operator。 所以无论是 普通对象 还是 const对象 取地址我们都无需手动实现operator。 大部分情况下取地址运算符重载都不用自己写编译器默认生成的就够用了。 只有特殊情况才需要重载 如你不希望别人取到你的地址。那这时就 Date* operator(){return nullptr; }
http://www.yutouwan.com/news/298202/

相关文章:

  • 网站的优化用什么软件北京软件公司有多少家
  • 网站的开发公司倒闭对网站使用大连网站关键词排名
  • 网站转化微信小程序p2p网站开发文档
  • 昆明网站建设ynmdwliis网站物理路径
  • 怎么在阿里云建立网站苏州建筑工程集团有限公司
  • 在线设计logo的网站微信群投票网站怎么做的
  • 堆龙德庆网站建设品牌建设对企业的作用
  • 网站的规划seo实战密码第四版
  • 前端做网站wordpress菜单栏图标
  • 贵 建设厅网站文件苏州微网站制作
  • 中小企业网站建设资讯深圳住建局工程交易中心
  • 自己做网站怎么搜索线上代运营公司
  • 怎么创建一个视频网站朝阳公共资源交易信息网
  • 网站设建设表单网站关键词优化排名技巧
  • 网站开发招聘职位建材做哪些网站好
  • 深南花园裙楼+网站建设大学生怎么做网站
  • 百度收录申请seo品牌
  • 西安做网站的公司维护软件产品设计流程
  • 邢台做移动网站家装设计网站开发
  • 做网站没有签合同可以退款吗广东哪里有网站建设
  • 外贸型网站建设公司学做网站论坛插件
  • 想自己搞一个视频网站怎么做深圳官方网站制作
  • 网站公司 模板温州微网站公司
  • dedecms网站地图修改品牌网站建设新闻
  • 营销手机网站论坛网站论坛网站建设建设
  • 在什么网站上做外贸网站出现的问题
  • 阿里网站注册tp做网站
  • 河南省建设部网站官网腾讯云域名注册步骤
  • 全网型网站建设方案建设部建造师强制注销网站
  • asp技术做网站做外贸要建什么网站