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

定制型网站开发腾讯云wordpress搭建网站

定制型网站开发,腾讯云wordpress搭建网站,界面漂亮的网站,wordpress后台配置文件构造/析构/赋值运算 5#xff1a;了解C默默编写并调用哪些函数6#xff1a;如果不想使用编译器自动生成的函数#xff0c;就该明确拒绝7#xff1a;为多态基类声明virtual析构函数8#xff1a;别让异常逃离析构函数9#xff1a;绝不在构造和析构过程中调用virtual函数10了解C默默编写并调用哪些函数6如果不想使用编译器自动生成的函数就该明确拒绝7为多态基类声明virtual析构函数8别让异常逃离析构函数9绝不在构造和析构过程中调用virtual函数10令operator 返回一个reference to *this11在operator 中处理自我赋值12复制对象时勿忘其每一个成分 5了解C默默编写并调用哪些函数 如果我们没有任何声明那么编译器就会默认生成一个copy构造函数copy assignment操作符和一个析构函数以及一个默认构造函数。 所有这些函数都是Public以及inline的。 e2e1; A a;//默认构造函数。自己声明了编译器就不生成了A(const A a){}//这是copy构造函数,默认是把每个非静态成员拷贝过来如果成员也是一个类型那么会继续调用copy构造函数 A operator(const A a){}//copy assignment操作符默认同上编译器生成的析构函数是non-virtual除非这个类的基类声明是virtual。 6如果不想使用编译器自动生成的函数就该明确拒绝 编译器产出的函数都是Public 解决办法把不想生成的函数自己来定义声明为private代表不使用。 C iostream经常这样做。 但是这样member函数和friend函数还是可以使用。 解决办法只声明函数但不定义函数调用的时候就会发现连接错误。 进一步解决就是把连接期错误转移到编译器。 解决办法是专门写一个阻止copy动作的基类。基类只需要把copy之类的你不想生成的给设置为private。然后private继承基类即可。 7为多态基类声明virtual析构函数 基类指针指向子类对象如果基类的析构函数是non-virtual那么会导致析构时只析构了基类的部分但是没有析构掉子类的部分。 Base *pointerson; delete pointer;解决办法就是基类析构函数应该为virtual。这只适用于多态性质有些时候继承不是为了多态就不要设置虚析构函数 不要继承析构函数不是virtual的类 任何class只要带有virtual函数都几乎确定应该也有一个virtual析构函数。 如果class不含virtual函数通常表示它并不意图被用做一个base class。当class不企图被当作base class令其析构函数为virtual往往是个馊主意。 虚函数实现细节 要实现virtual函数对象必须携带某些信息主要用来在运行期决定哪一个virtual函数该被调用。 这份信息由vptr(virtual table pointer)指针指出。vptr指向一个由函数指针构成的数组称为vtblvirtual table每一个带有virtual函数的class都有一个相应的vbtl。 当对象调用某一virtual函数实际被调用的函数取决于该对象vptr所指的那个vtbl——编译器在其中寻找适当的函数指针。 纯虚函数P43没看懂讲的啥 class带一个纯虚函数会导致抽象类即不能被实体化。 纯虚函数 virtual ~AWOV()0;析构函数调用顺序 从派生类开始依次向上。 8别让异常逃离析构函数 C不喜欢析构函数吐异常就算吐也要立刻解决。 例子数据库关闭连接 ~DBConn() {db.close(); }这样产生了异常就很糟糕没关闭成功还退出析构函数了后续程序运行可能出行不好检查的bug 解决办法1强制结束程序 DBConn::~DBConn() {try{db.close();}catch(...){std::abort();} }解决办法2强制结束程序 DBConn::~DBConn() {try{db.close();}catch(...){//制作运行记录记下close的失败。} }9绝不在构造和析构过程中调用virtual函数 例子 class Transaction{Transaction();virtual void logTransaction() const0; } Transaction::Transaction() {...logTransaction(); }class ButTransaction:public Transaction{public:virtual void logTransaction() const; }下面这句代码有问题 ButTransaction b;首先是ButTransaction构造函数调用但是肯定Transaction构造函数会被更早调用基类先构造完才到子类。 问题Transaction构造函数最后一行调用了logTransaction这个时候调用的是Transaction的版本而不是ButTransaction的版本。 析构函数也同理。 10令operator 返回一个reference to *this 返回引用才能真正修改到值嘛 int a; a10;11在operator 中处理自我赋值 没太看懂记下结论 确定任何函数如果操作一个以上的对象而其中多个对象是同一个对象时其行为仍然正确确保当对象自我赋值时operator有良好行为。其中技术包括比较来源对象和目标对象的地址精心周到的语句顺序以及copy-and-swap。 12复制对象时勿忘其每一个成分 一般只留两个函数负责对象拷贝复制即copy构造函数A a(A b)以及copy assignment即符号。这些就是拷贝函数。 如果我们自己写了这些函数不让编译器自动生成那么新增成员变量一定要注意还有就是注意拷贝完基类的所有部分 不该用copy assignment操作符调用copy构造函数。反过来也一样。重复代码用private函数init提取出来。
http://www.sczhlp.com/news/177245/

相关文章:

  • 网站建设基础大纲文案找建设企业网站公司
  • 哪个厂家的广州网站建设wordpress 表单
  • 天猫网站建设论文网站的空间什么意思
  • 怎样做网站上更改文字制作好的网站必须申请
  • 北京律师网站建设推荐乘风专业建站
  • 广州建设h5网站网站平台建设的当前问题
  • 淮安建立公司网站流程公司注册地址变更需要多久
  • 小型电子商务网站规划wordpress换域名安装
  • 成安县城乡建设规划局网站网站被入侵
  • 如何规避电子政务网站建设教训哪个网站可以做ppt
  • 完整个人网站htmlui交互设计是什么
  • 网站这么做404页面开发公司电梯前室只给一楼吊顶
  • 互助网站制作济南建设网站平台
  • 中音阶梯网站谁家建设wordpress如何写网站
  • 人人做全免费网站上饶高端网站建设
  • 网站的困难长清网站建设公司
  • 陕西住房和城乡建设厅网站六安网站制作找哪家
  • 搭建一个网站平台需要多少钱做赚钱问卷调查的网站
  • 做网站推广送什么unik wordpress
  • 网站建设的相关书籍做交易网站需要多少钱
  • 网站 提示危险唐山网站建设汉狮怎么样
  • 网站建设合同按什么交印花税wordpress删除文章rss
  • 付网站建设费用计入科目网站建设客户合同范本
  • 网站建设教程菜鸟教程苏州网页关键词优化
  • 网站服务器计算机安全的措施wordpress加载不同模板
  • 兼职做网站 深圳网站建设的描述
  • 广东省建设工程监督站官方网站全国网站建设公司有多少家
  • 淄博公司网站建设万能搜索引擎入口
  • 个人网站模板怎么做友情链接吧
  • 做手机旅游网站长沙关键词优化报价