stl容器中元素重载&运算符问题
#include <iostream>
#include <deque>
using namespace std;
template<class T>
class ClassA
{
public:
ClassA()
:obj(NULL) { }
~ClassA()
{
}
T** operator&()
{
}//gcc中只要加入这个运算符重载就不能编译通过
protected:
T* obj;
};
int main (int argc, char * const argv[]) {
deque<ClassA<int> > dq;//编译出错
std::cout << "Hello, World!\n";
return 0;
}
以上代码vc下编译通过,gcc下编译不通过。
deque<ClassA<int> > dq;这句编译出错
报错:no matching function for call to 'std::allocator<ClassA<int> >::destroy(int**)'
请高手解惑
#include <deque>
using namespace std;
template<class T>
class ClassA
{
public:
ClassA()
:obj(NULL) { }
~ClassA()
{
}
T** operator&()
{
}//gcc中只要加入这个运算符重载就不能编译通过
protected:
T* obj;
};
int main (int argc, char * const argv[]) {
deque<ClassA<int> > dq;//编译出错
std::cout << "Hello, World!\n";
return 0;
}
以上代码vc下编译通过,gcc下编译不通过。
deque<ClassA<int> > dq;这句编译出错
报错:no matching function for call to 'std::allocator<ClassA<int> >::destroy(int**)'
请高手解惑
...全文
相关推荐
STL和运算符重载入门PPT
### STL与运算符重载入门知识点详解#### 一、STL简介STL(Standard Template Library,标准模板库)是C++标准库的一部分,它为程序员提供了许多实用的工具来简化程序设计过程
向量类的多种运算符重载
在VC++环境下,你可以利用标准模板库(STL)中的`std::vector`,但如果你想自定义一个向量类,你需要从头实现这些功能,同时确保与STL容器兼容,以便于与其他库或代码集成。
在STL的map或set容器中使用类作为key
本文主要讨论如何在STL的 `map` 或 `set` 容器中使用类作为key,并深入解析相关的类结构设计。#### STL set容器概述`set` 是一个模板类,它存储的是唯一且有序的元素集合。
C++如何删除map容器中指定值的元素详解
在C++编程中,STL(Standard Template Library)提供了一个非常强大的数据结构——map,它是一个关联容器,其中每个元素都是一个键值对,键是唯一的。
STL源码
容器(Containers):这是STL的基础,提供了多种数据结构,如数组、链表、向量、集合、映射等。例如: - `vector`:动态数组,可以高效地在末尾插入和删除元素。


