您好、欢迎来到现金彩票网!
当前位置:最新捕鱼棋牌 > 文件分配时间 >

c++primer3中有一句话:“在多个文件之间编译相同的函数模板定义

发布时间:2019-07-10 05:13 来源:未知 编辑:admin

  c++primer3中,有一句话:“在多个文件之间编译相同的函数模板定义增加了不必要的编译时间”……

  c++primer3中,有一句话:“在多个文件之间编译相同的函数模板定义增加了不必要的编译时间”……

  c++primer3中,有一句话:“在多个文件之间编译相同的函数模板定义增加了不必要的编译时间”这句话的背景是“在头文件A中给出了函数模板的定义”,就像是内联一样。然后需要这个模板定...

  c++primer3中,有一句话:“在多个文件之间编译相同的函数模板定义增加了不必要的编译时间”

  这句话的背景是“在头文件A中给出了函数模板的定义”,就像是内联一样。然后需要这个模板定义的文件把A include进来

  “在多个文件之间编译相同的函数模板定义增加了不必要的编译时间”这句话是什么意思呢?编译器是怎么编译文件的。

  模板只是一串代码,怎么实例化呢。是不是编译时分配空间,然后在程序运行时,根据调用的实参,向这些空间里面填入数据呢展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部简单点说,对于一个vectorint的函数,比如size(),如果在不同的cpp中出现,在这些文件编译的时候都要把vectorint::size()编译一遍。然后在链接的时候把重复的函数去掉。很显然增加了编译时间。

  补充里你的理解是错的,模板的声明是不编译的,更没有空间,它根本不是实际的类型或函数,编译器根本不管它。只有实例化的时候,才生成真正的类型、函数,而实例化的地方不在一起,必然造成同一个类型、函数被编译了多次。反观类的编译,只在它的cpp中编译一次,其他地方都使用它的头文件得到声明。

  展开全部模版函数需要在编译的时候实例化,所以呢,不把模版的实现代码放到头文件中的话(在头文件中实例化),那么每个使用到这个模版的cpp的都要把这个模版重新实例化一遍,所以增加了编译时间

http://kentdale-scouts.com/wenjianfenpeishijian/433.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有