gpt4 book ai didi

c++ - C++通用类,为什么需要.cpp文件?

转载 作者:行者123 更新时间:2023-12-02 10:14:41 24 4
gpt4 key购买 nike

我希望在C++ 11中编写一个通用类(例如:template <Class T>),但有人告诉我实现只能写在.h文件中。

另一方面,我应该提交一些.cpp文件。有人可以解释这个矛盾吗?
如果所有定义和实现都需要在.h文件中,为什么我完全需要.cpp

最佳答案

实际上,您根本不需要.cpp文件,并且有很多仅 header 的库示例。

但是,为某些模板实例提供.cpp文件可能是有益的,因为这使您有机会提供另一个项目可以链接的二进制文件。这样可以节省编译时间。

一个例子:

您的 header Foo.h

template<typename T>
class Foo {
// some functions
};

如果 Foo通常用浮点类型实例化,则可以提供一个包含例如
template class Foo<float>;
template class Foo<double>;
template class Foo<long double>;

关于c++ - C++通用类,为什么需要.cpp文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62359169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com