
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
函数的应用在许多软件编程开发项目都是会被经常用到的一个开发元素,我们在前几期的文章中提到了c++编程函数的一些基础知识,下面我们就通过案例分析来简单了解一下,c++编程函数应用分析。
一、构造函数不可能成为虚函数:
1,在构造函数执行结束后,虚函数表指针才会被正确的初始化;
1,C++里面的多态是通过虚函数表和指向虚函数表指针完成的,虚函数表指针是由编译器创建的,同时也是由编译器进行初始化,在构造函数执行结束之后,虚函数表的指针才会被正确进行初始化;
2,在构造函数执行的过程当中,虚函数表的指针有可能是没有被正确初始化的,因为对于虚函数表和虚函数表指针的实现,对于不同的C++编译器而言,实现有可能不一样,但是所有的C++编译器都会保证在构造函数执行结束后,虚函数表指针肯定会被正确的初始化,在这之前,是没有保证的;
3,所以构造函数不可能成为虚函数,创建一个对象的时候,我们需要构造函数来初始化虚函数表的指针,因此构造函数相当于一个入口点,这个入口点负责虚函数调用的前期工作,这个入口点当然不可能是虚函数;
二、析构函数可以成为虚函数:
1,析构函数在对象销毁之前被调用,对象销毁之前意味着虚函数指针是正确的指向对应的虚函数表的;
2,建议在设计类时将析构函数声明为虚函数(工程中设计一个父类的析构函数为虚函数);
1,赋值兼容性申请子类对象给父类指针时,当delete作用在指针上时,编译器会直接根据指针类型(此时是父类)来调用相应的析构函数,若父类加上virtual,编译器可以根据指针指向的实际对象(此时是子类)决定如何调用析构函数(多态);
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。