
C++
C++笔记
向往的今越
唯有热爱可抵岁月漫长
展开
-
C++编译器为什么不支持类模板的分离式编译
当我们声明和定义一个类模板的时候,必须要让声明和定义放在一个文件里,否则编译器会报错。这其中的理由是什么呢?为什么会这样?首先,一个编译单元(translation unit)是指一个.cpp文件以及它所#include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件(假定我们的平台是win32),后者拥有PE(Portab...转载 2020-01-15 12:11:04 · 284 阅读 · 0 评论 -
C++模板类内友元(友元类,友元函数)声明的三种情况
根据《C++ Primer》第三版16.4节的叙述,C++类模板友元分为以下几种情况1.非模板友元类或友元函数。 书上给了一个例子:class Foo{ void bar();};template <class T>class QueueItem{ friend class foobar; friend void foo(); fr...转载 2020-01-15 12:12:19 · 1570 阅读 · 0 评论