c++ - 模板和两个单独的类之间的区别

标签 c++

让我们假设这段代码:

#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,而第二种情况下ac)。

比较 variant 1variant 2 .注意生成的相同代码。

关于c++ - 模板和两个单独的类之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54746154/

相关文章:

c++ - 使用 glm 时翻转 Z 坐标

c++ - 关于在 C++ 中将数组存储在 std::vector 中的问题

c++ - 如何确定socket listen() backlog 参数的值?

c++ - 没有合适的用户定义转换

c++ - 如何使用QpropertyAnimation制作SlideIn和SlideOut效果?

c++ - 使用 GDI+ (VC++ 2008) 编译时遇到问题

c++ - 将 NSInteger 传递给 size_t 并将 NSInteger* 传递给 size_t*

java - JNI 不满意链接错误 : A dynamic link library (DLL) initialization routine failed

c++ - 在 .intel_syntax GNU C 内联汇编中引用内存操作数

c++ - 如何生成一个随机的、不重复的字符串 C++