百科问答小站 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();     

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




  

相关话题

  请问一个程序员应该怎样才能学会编写带GUI的程序? 
  一名大二的计算机专业的学生,目前学了很多编程语言,但都学得很浅。是不是应该专攻一门感兴趣的语言? 
  计算机领域有哪些「将错就错」被沿用至今? 
  为什么说用了10年C++的程序员也不敢说自己精通C++? 
  「C++ 早就过时了,大部分写工程不用 C++,学习这个语言只是为了竞赛」的观点是否正确? 
  在出现事故之前悄悄排除了一个重大BUG,是怎样的一种体验? 
  请问《计算机网络》《操作系统》《 组成原理》《 数据库》 学习的先后顺序是怎么样的,怎样学好? 
  在编程中有没有巧妙运用数学知识解决过问题? 
  为什么C语言中计算机认为0是假的,其他数都是真的? 
  c语言中,关于switch循环的这个疑问怎么解? 

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





© 2025-04-10 - tinynew.org. All Rights Reserved.
© 2025-04-10 - tinynew.org. 保留所有权利