在类A中,你可以使用模板函数来设置变量b的类型:\n\ncpp\nclass A {\npublic:\n std::string a;\n template<typename T>\n A(const T& value) : b(value) {}\nprivate:\n template<typename T>\n T b;\n};\n\n\n这样,无论你传入什么类型的参数,变量b都会根据传入参数的类型而确定。\n\n然后,在类B中,你可以使用模板函数来添加实例到变量c中:\n\ncpp\nclass B {\npublic:\n std::vector<A> c;\n template<typename T>\n void addInstance(const T& value) {\n A instance(value);\n c.push_back(instance);\n }\n};\n\n\n这样,你可以通过调用addInstance函数来往变量c中添加类A的实例,并且根据传入参数的类型来确定A的模板类型。注意,类B本身并不是模板类。\n\n例如,你可以这样使用:\n\ncpp\nint main() {\n B b;\n b.addInstance("Hello");\n b.addInstance(10);\n b.addInstance(3.14);\n return 0;\n}\n\n\n在上面的例子中,变量c中会分别包含一个A实例,其模板类型分别为std::stringintdouble


原文地址: https://www.cveoy.top/t/topic/qc5o 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录