百科问答小站 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线程并不需要多么高超的优化技巧。

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

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

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




  

相关话题

  为什么很多程序员不用switch,而是大量的if……else if? 
  为什么程序员都不维护行业形象? 
  电气专业和计算机结合有什么方向或者需要学习什么? 
  培训出来的程序员一无是处吗? 
  C语言中按%d打印char会不会把相邻内存的也print出来? 
  把代码写的太灵活不好吗?为什么会被上司批评? 
  渗透测试工程师是青春饭吗? 
  程序员如何挽救一个失败的项目? 
  当下软件开发语言腾出不穷,作为老牌c++GUI领域top1的QT未来会怎样? 
  如何评价《职人介绍所》第 21 期节目,以及嘉宾 赵劼 和 winter 的表现? 

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





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利