让我们假设这段代码:
#include<iostream>
template <typename T>
class A {
T a;
};
int main() {
A<int> a;
A<char> c;
}
现在,考虑这段代码,我有两个单独的类,而不是模板,用于 int 和 char。
#include<iostream>
class A {
int a;
};
class C {
char c;
};
int main() {
A a;
C c;
}
根据编译器、优化或程序的代码段,上述两种方法会有什么不同吗?
哪种方法的可执行文件大小会更大,为什么?
最佳答案
模板本质上是一种在编译代码之前生成源代码的机制。
从代码生成或可执行文件大小的角度来看,这两种方法是相同的(除了第一种情况下两个类都有一个成员变量a
,而第二种情况下a
和 c
)。
关于c++ - 模板和两个单独的类之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54746154/