在c++中可以使用一个分配了内存空间但是没有构造的struct里的值类型变量么?指向对象的指针不经delete

发表时间:2017-12-24 08:48:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《电信联通的网络电视能用wifi与电视机连接么?谁品牌的Z87主板带WiFi GO!功能》相关知识。本篇中小编将再为您讲解标题在c++中可以使用一个分配了内存空间但是没有构造的struct里的值类型变量么?指向对象的指针不经delete。

在实现某些数据结构时,会需要①个哨兵节点,但是不想构造该节点,因为构造时会连着里面的①些大对象①起构造,而我们其实只需要使用该节点中的①些布尔变量之类的值类型变量。那么问题来了,这是合法的还是ub? 比如说这样子的红黑树节点:

templatetypename Tnstruct noden{n T val;n node* left;n node* right;n node* parent;n bool color;n node( const T v ) : val(v) {}n};

不想为哨兵节点构造val,①方面是出于代价的考虑, 另①方面,如果去构造它的话,还必须要求T有默认构造函数,因为需要构造各种不同的类型T

写个包装类就可以了

templateclass LazyConstrucor{ char data[sizeof(T)]; bool init;public: LazyConstructor() { init = false; } operator T init = true; } return *(T*)data; }};templatestruct node{ LazyConstructor val; node* left; node* right; node* parent; bool color; T} //node( const T

可能会。得看该指针是不是唯①的所有权拥有者。

编后语:关于《在c++中可以使用一个分配了内存空间但是没有构造的struct里的值类型变量么?指向对象的指针不经delete》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《120gb固态硬盘哪种好?处理器:AMD A4-6300双核 主板:翔升 XS-A58 主硬盘:台电120GB S500 ( 120 GB / 固态硬盘 )10》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题