我知道模板类的普通成员函数会在第一次使用时被实例化。但是这不能用于虚拟成员函数,因为它可以通过基类指针访问。这意味着一旦tmeplate类被实例化,虚拟成员函数就会被实例化?如果不是当?当模板类的虚拟成员函数实例化了吗?
3
A
回答
5
在14.7.1/9
C++ 03:
一种实现不应隐含地实例化一个函数模板,一个构件模板,非虚拟成员函数,一个部件类或类模板的静态数据成员这不需要实例化。如果虚拟成员函数不会被实例化,则没有指定实现是否隐式地实例化类模板的虚拟成员函数。
1
它是实现定义的。
但通常当实例化一个模板类时,将生成新类类型的所有成员。
1
根据C++标准14.6.4.1/4:
如果虚拟函数是隐式 实例化,其 实例化点紧跟 其 包围类的实例化点模板 专业化。
相关问题
- 1. 实例化类模板的可变成员函数模板
- 2. 实例化模板成员函数
- 3. 模板成员函数只实例化
- 4. 使用成员模板函数显式模板实例化
- 5. 模板类成员函数专业化?
- 6. 模板成员函数中的模板化参数类型
- 7. 成员函数的typedef可以用helper模板类简化吗?
- 8. 当一个类模板被实例化时,成员模板声明是否也被实例化?
- 9. 类和成员函数模板专业化出错了
- 10. 模板函数的特化可以是虚拟的吗?
- 11. 什么时候模板类的特殊成员函数被实例化?
- 12. 使用模板类的成员在MSVC++中实例化模板默认参数
- 13. 模板类和成员函数的部分模板专业化
- 14. 如何规避虚拟模板成员函数?
- 15. 如何设计模板化成员函数不能虚拟的限制
- 16. 访问模板类型实例成员
- 17. C++实例化函数模板作为类成员并使用“this”指针
- 18. 我如何实例化成员函数指针类为模板ARG
- 19. 如何在模板类中专门化模板成员函数?
- 20. 成员函数的模板专门化
- 21. C++不同类型的模板类的显式模板化函数实例化
- 22. 类模板可以在没有成员的情况下实例化吗?
- 23. 虚拟成员函数定义能否出现在类模板之外?
- 24. 模板类中的纯虚拟模板函数
- 25. 如何专门化模板化类的成员函数?
- 26. (Obj)C++:从模板实例化(引用)类,访问其成员?
- 27. 具有模板成员函数的类,是同一个类吗?
- 28. 带有虚拟成员的模板类:链接器错误
- 29. 虚拟对类模板成员使用的影响
- 30. 类变通方法的虚拟模板成员
他想知道函数是否被实例化。不在实例化的地方。 – 2010-08-14 15:47:23