【发布时间】:2010-09-22 23:33:59
【问题描述】:
我正在用 C++ 编写一个服务器,并创建了一个名为 client 的类来存储有关已连接客户端的信息。我想将客户端存储在向量中。我有电话
clients.push_back(new client(addr,fd));
将客户端对象添加到矢量客户端。我在编译时收到以下错误
server.cpp:67: error: no matching function for call to ‘std::vector<client, std::allocator<client> >::push_back(client*)
我认为这与我对new 关键字以及数据如何在 C++ 中存储/移动的误解有关。我来自 Java 背景,所以我不习惯 C++ 的指针和内存。
【问题讨论】:
-
这没有什么问题,你声明
clients向量的那一行是什么样的? -
你有a good introductory C++ book, 对吗?如果没有,你真的需要买一本读一读。我从您的帖子中猜想您可能不了解 C++ 中内存管理的基础知识,而且这是一个充满常见陷阱的领域。
-
可能你的向量没有被声明为
vector<client*>,而是vector<client>
标签: c++