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

网站改版目标搜索引擎优化实训

网站改版目标,搜索引擎优化实训,深圳做网站要多少钱,美丽中国网页界面设计在C中&#xff0c;当我们把派生类对象向上强制转型为基类对象时&#xff0c;会造成对象切割&#xff08;Object slicing&#xff09;问题。  请看下面示例代码&#xff1a; #include <iostream> using namespace std;class CBase { public:virtual ~CBase() default;v…

 在C++中,当我们把派生类对象向上强制转型为基类对象时,会造成对象切割(Object slicing)问题。
 请看下面示例代码:

#include <iostream>
using namespace std;class CBase {
public:virtual ~CBase() = default;virtual void foo() {printf("print in Class CBase,this address:%p\n", this);}
};class CDerive : public CBase {
public:virtual void foo() override {printf("print in Class CDerive,this address:%p\n", this);}
};int main() 
{CBase base;CDerive derive;CBase* pBase = &derive;cout << "\n本次调用的是pBase->CBase::foo()\n\t";pBase->CBase::foo();cout << "\n本次调用的是pBase->foo()\n\t";pBase->foo();cout << "\n本次调用的是 (static_cast<CBase>(derive)).foo() \n\t";(static_cast<CBase>(derive)).foo();
}

 代码运行结果如下:
在这里插入图片描述
 对于前两次调用成员函数foo的结果,大家应该都清楚,pBase是指向派生类对象的基类指针,而foo成员函数是虚函数;因此 pBase->foo() 调用的是派生类方法;pBase->CBase::foo()由于指定了调用CBase的foo函数,因此调用的是基类方法。另外,foo函数打印出来的this指针的地址,显示前两次调用的this指针是同一个,也就是指向子类对象derive。
 关键是最后一次调用的结果,显示调用的是基类方法,并且对象的地址也不是子类对象derive的地址。它的调用语句是:

(static_cast<CBase>(derive)).foo();

 这是为什么呢?这涉及到对象切割(object slicing)。
 在编译时,编译器看到这句是要将派生类对象derive向上强制转为基类对象,因此编译器以所谓的拷贝构造函数把derive中的CBase成分拷贝一份,并把拷贝好的副本作为临时对象放在内存中。在运行期,这个副本(它是CBase对象)调用foo函数时,当然调用的是CBase::foo成员函数了!
 请注意,如果我们把派生类对象的指针向上强制转为基类对象的指针,那么转换后的基类指针仍然指向派生类对象。
 总之,当我们把派生类对象向上强制转型为基类对象时,会经历对象切割(Object slicing),也就是:编译器在内存中创建了一个子类对象的基类成分的副本,这个临时对象与之前的子类对象无关。

http://www.ds6.com.cn/news/19513.html

相关文章:

  • 个人网站建设程序设计班级优化大师官方网站
  • 网站开发的步骤实训内容免费留电话的广告
  • 黔西县城市建设局网站佛山百度网站快速排名
  • 神农架网站建设公司2023年第三波疫情9月
  • 重庆公司黄页企业名录山西seo基础教程
  • 浙江网站建设公司地址本周新闻热点10条
  • 网页设计网站大全网络营销的作用
  • 苏州网站建设建站网搜索引擎网站推广如何优化
  • 做网站都需要用到什么百度云网盘官网
  • 为什么要建设营销型网站淘宝运营培训机构
  • 大连 盘古建站外链推广
  • 百度网站结构电商网站订烟平台
  • 大连网站建设选高和科技百度广告怎么做
  • 做机器设备的网站百度指数可以查询到哪些内容
  • wordpress代码执行漏洞seo咨询推广
  • 个人性质的网站备案容易查中国最好的网络营销公司
  • 域名做好了怎么做网站内容拓客渠道有哪些
  • 湖南省水利水电建设工程学校网站seo推广优化外包价格
  • 网站如何做浏览量线上营销有哪些
  • 网站开发费用报价单搜索引擎营销的方法包括
  • 爱网站无法登录怎么回事国际十大市场营销公司
  • 成都建设工程交易中心网站网络营销做的好的企业
  • 一流的常州网站优化郑州营销型网站建设
  • 张家口做网站便宜点的优质外链平台
  • wordpress 静态内容武汉网站seo推广公司
  • 太原网站优化怎么做百度总部地址
  • 台州网站建设设计seo北京
  • 网站文件夹怎么做让百度收录自己的网站
  • 专业网站建设微信网站定制怎么让网站被百度收录
  • 电影网站如何建设怎样设计一个网页