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



C++ 实现接口与实现分离后,文件变得更多了,到底有什么好处? 第1页

  

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

用四个文件没必要,三个就可以

Person.h, PersonImpl.h, Person.cpp

其中Person.h是暴露给外部的公共头文件,PersonImpl.h是内部头文件对外不可见,建议分两个目录存放

Person.cpp里面同时包含 class Person和class PersonImpl的实现。

这样做的好处是 :

一,保持二进制兼容,公共头文件里面只有接口定义,而不包括实现,即使实现部分有改变不影响接口,比如增删改类成员变量,不会导致class的sizeof变化或者内存layout的变化

二,提升编译速度,小项目当然感觉不到,起码50万行以上的项目才会比较明显,这个结论是非常确定的,不要随便质疑前辈的智慧,如果你确信项目未来代码规模会比较大,那么相信照着做就好了。

三,方便未来重构,接口和实现分离,即使大的架构改动,原有的接口代码改动小,容易平滑过度。


user avatar   pansz 网友的相关建议: 
      

开局一张图,剩下全靠猜?这个没法评价。

从软件的角度虽然我能想出两三种导致这个现象的原因,但非正式发布的产品出现任何问题都是常见现象。盲人摸象的评价没有必要。

跟11代没差别,这个肯定是违背常识的,要知道11代i9只有16线程,12代i9有24线程,24线程超越16线程并不需要多么高超的优化技巧。

调度优化的主要难题是当我们只需要少量线程运作的时候究竟把这个线程安排在哪个核心。

然而,对于全核心全线程同时计算的场景来说,反正都是全核心上场,根本不需要什么优化,谁来都是全核心工作。

如果这个软件能把所有核心用满的话,没道理性能不变。所以肯定有某个环节出了问题。正式版本再说吧。




  

相关话题

  C++ protected继承和private继承是不是没用的废物? 
  C/C++在函数调用时,为什么需要先将参数压栈? 
  为什么使用C#开发软件的公司和程序员都很少? 
  Python 中有什么不容易让人察觉的有趣的事实? 
  如何看待没有学历的程序员? 
  哪里可以买得到程序员使用的竖长型显示器? 
  程序员最理想的工作环境应该是什么样的? 
  27岁想转python,是否值得? 
  能否通过对编译器或者编译环境的限制来应对木马或者病毒呢? 
  有没有什么工具可以帮助理解源代码的? 

前一个讨论
在中国程序员能不能干一辈子?
下一个讨论
如何评论陈一佳称中国人不该吃海鲜?





© 2024-09-28 - tinynew.org. All Rights Reserved.
© 2024-09-28 - tinynew.org. 保留所有权利