百科问答小站 logo
百科问答小站 font logo



C/C++编程有哪些没什么用,但让人不明觉厉又不至于太奇怪的写法? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

Placement New

普通的new 操作符,假设有个类叫 class Foo

       Foo *p = new Foo();     

这行代码实际上干了两件事,首先分配一块内存,然后调用Foo的构造函数

但是有时候,我们已经有一块内存,不需要再分配,只需要调用构造函数,但是C++语法是不允许直接调用构造函数的

       p->Foo::Foo(); // 编译错误error: cannot call constructor ‘Foo::Foo’ directly     

那么想在已经存在的内存上构建对象,就要用到 Placement New,实际上就是帮你调用下构造函数

       void *p = malloc(sizeof(Foo)); Foo *bar = new (p) Foo();     

这个特性不能说绝对没用,但是极少会用到。




  

相关话题

  如何看待「年轻人不要用 Visual Studio」的言论? 
  请问#define PI 3.1416比float pi=3.1416有什么优势呢? 
  c语言while语句他是怎么工作怎么运行的? 
  写代码一遍就成功是怎么一种体验? 
  似乎很多新手程序员不待见goto语句,认为它是"不好的"。所以我想听听大家对goto语句的看法。? 
  有个人说C++程序入口是mainCRTStartup,另一个人说是main,然后打起来了,如何评理? 
  初中文凭可以学习编程吗?如果可以,是去靠谱的培训机构还是自学?学习方向都有哪些?就业环境如何? 
  用C/C++开发工业软件适合吗? 
  为什么主流的编程语言没有一个是中国人开发的? 
  如何看待北京理工大学2018-2019求是书院C语言期末? 

前一个讨论
如何评价轮子哥VCZH在微软十几年还是SDE2?
下一个讨论
人工智能就业前景越来越严峻了,你还在坚持吗?





© 2025-02-05 - tinynew.org. All Rights Reserved.
© 2025-02-05 - tinynew.org. 保留所有权利