模板类通用指针的问题

achenal 2011-03-28 05:21:48
定义一个模板类,如何定义一个通用的指针vector?

template class<typename T> common_class;
std::vector<common_class<????> *> cls_container;

java里面可以用?代替未知类型。
例如
void foo(Vector<?> obj);

不知道C++怎么实现。谢谢!
...全文
135 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mskmc_mc 2011-03-28
  • 打赏
  • 举报
回复
上面写错了
mskmc_mc 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 achenal 的回复:]
实际情况是:
template<typename T_, unsigned int T_=1> class common_field { ... };
common_field<int> obj1;
common_field<float> obj2;
common_field<char, 256> obj3;
field_container.push_back(&obj1);
……
[/Quote]

template<typename T1,,typename T2,int I>

class field_container<T1,I> { public: T2 val; };
achenal 2011-03-28
  • 打赏
  • 举报
回复
实际情况是:
template<typename T_, unsigned int T_=1> class common_field { ... };
common_field<int> obj1;
common_field<float> obj2;
common_field<char, 256> obj3;
field_container.push_back(&obj1);
field_container.push_back(&obj2);
field_container.push_back(&obj3);

谁能告诉我C++里面如何定义field_container?不能用void *代替。
achenal 2011-03-28
  • 打赏
  • 举报
回复
呵呵,上面只是一个简单的示例啊。
bluesky12312388 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 achenal 的回复:]

上面所说的方法不行。

我想这样做:
common_class<int> obj1;
common_class<char> obj2;
common_class<float> obj;
cls_container.push_back(&obj1);
cls_container.push_back(&obj2);
cls_container.push_back(&a……
[/Quote]
你是可能是Java转换过来的,C++不是这么用的
int obj1;
int obj2;
float obj;
cls_container.push_back(&obj1);
cls_container.push_back(&obj2);
cls_container.push)back(&obj);
achenal 2011-03-28
  • 打赏
  • 举报
回复
上面所说的方法不行。

我想这样做:
common_class<int> obj1;
common_class<char> obj2;
common_class<float> obj;
cls_container.push_back(&obj1);
cls_container.push_back(&obj2);
cls_container.push_back(&obj3);

如何定义cls_container呢?
delphiwcdj 2011-03-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bluesky12312388 的回复:]

C/C++ code
template <typename T>
std::vector<T > cls_container;
或者
std::vector<T *> cls_container;
这两种都行
[/Quote]
UP
bluesky12312388 2011-03-28
  • 打赏
  • 举报
回复
template <typename T> 
std::vector<T > cls_container;
或者
std::vector<T *> cls_container;
这两种都行
zhaolinger2 2011-03-28
  • 打赏
  • 举报
回复
T?求高手

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧