要实现你的需求,可以将类B设计成一个模板类,其中模板参数为A的类型。然后在类B中的vector容器中存储A的实例。\n\n以下是一个示例代码:\n\ncpp\n#include <iostream>\n#include <vector>\n#include <string>\n\ntemplate<typename T>\nclass A {\npublic:\n std::string a; \n T b; \n \nA(std::string str, T value) : a(str), b(value) {}\n};\n\ntemplate<typename AType>\nclass B {\npublic:\n std::vector<A<AType>> c; \n \n void addInstance(const std::string& str, AType value) {\n A<AType> instance(str, value);\n c.push_back(instance);\n }\n};\n\nint main() {\n B<int> b1; \n b1.addInstance("Example", 10);\n \n B<double> b2; \n b2.addInstance("Another Example", 3.14);\n \n return 0; \n}\n\n\n在上述示例中,类A是一个模板类,其中有两个成员变量a和b。类B也是一个模板类,其中有一个成员变量c,它是一个vector容器,存储的类型是A类的实例。在main函数中,我们创建了两个B类的实例b1和b2,它们分别用不同的模板参数int和double实例化。然后通过调用addInstance函数向c中添加A类的实例。\n\n通过这种设计,你就可以根据传入的A类实例的类型来决定A类的模板参数。


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

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