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



C++编译器能不能弃用指针,只允许用引用? 第1页

  

user avatar   pansz 网友的相关建议: 
      

我觉得,至少在这一种情况下:用引用会很难受。

       MyClass *mc;  do { // 或者 switch,或者其他必须要加大括号的程序块内   // 。。。    if (aaa)     mc = new MyClass(bbb);   else     mc = new MyClass(ccc);   // 。。。  } while (ddd); // do while 循环可以替换成 switch 等其他控制结构。  do_something(mc); // 在结构之外需要用到该指针。      


引用要求在声明的同时必须初始化并且之后不可修改,然而上述例子中,在结构体内初始化会使得该指针无法作用到大括号之外。

如果一个指针必须在结构体外定义,在结构体内初始化,并且在结构体结束之后使用。那么用引用实现同等功能会非常难受。




  

相关话题

  能否把高版本的libstdc++静态连接到一个只暴露纯C接口的动态库中,给低版本c++程序调用? 
  这个代码int函数无返回值且开-O2,for循环会无限循环,是什么原因? 
  有多少人知道汉诺塔其实应该叫河内塔? 
  为什么苹果新语言 Swift 的 RC4 运算效能是 Python 的 220 倍? 
  单精度浮点数中的「单」和「浮点」是什么意思? 
  C 语言中不同类型指针的大小是否完全相同,为什么? 
  C 语言执行 a=a++; 后,a 的值应该加一还是不变? 
  为什么大多数编译厂商不把 bool 类型实现为 1 bit 而是 8 bit 或者32 bit? 
  C的结构体成员变量的命名有必要加前缀吗? 
  有一台不会坏掉的电脑,这台电脑上只有vc++6.0,给一个人一亿年的时间,能创造出现在的各种软件吗? 

前一个讨论
广东有领证几年后再办酒的习俗吗?
下一个讨论
如何看待《哪吒之魔童降世》票房超越《我不是药神》?





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