C++ 重载类定义之外的运算符
我想重载C++ 重载类定义之外的运算符,c++,C++,我想重载操作符-,以给出作为参数传递的两个迭代器之间的距离 我的类是一个列表,我的列表中嵌套了迭代器类 我似乎无法得到函数的正确形式。我还没有机会检验尸体。我对函数的主要问题是如何定义它 size_t operator-(template <class T> typename mylist<T>::iterator a, template <class T> typename mylist<T>::iterator b) { size_t
操作符-
,以给出作为参数传递的两个迭代器之间的距离
我的类是一个列表,我的列表中嵌套了迭代器类
我似乎无法得到函数的正确形式。我还没有机会检验尸体。我对函数的主要问题是如何定义它
size_t operator-(template <class T> typename mylist<T>::iterator a, template <class T> typename mylist<T>::iterator b) {
size_t i = 0;
while(a.node != b.node) {
++a;
++i;
}
return i;
}
size\t运算符-(模板类型名mylist::迭代器a,模板类型名mylist::迭代器b){
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
正确的定义如下:
template <class T>
size_t operator-(const mylist<T>::iterator& a, const mylist<T>::iterator& b) {
... put logic here...
}
正确的定义应该是这样的:
template <class T>
size_t operator-(const mylist<T>::iterator& a, const mylist<T>::iterator& b) {
... put logic here...
}
正确的定义应该是这样的:
template <class T>
size_t operator-(const mylist<T>::iterator& a, const mylist<T>::iterator& b) {
... put logic here...
}
正确的定义应该是这样的:
template <class T>
size_t operator-(const mylist<T>::iterator& a, const mylist<T>::iterator& b) {
... put logic here...
}
你应该研究如何正确地使用它
模板
空函数(常数T&T){…}
您应该研究如何正确使用
模板
空函数(常数T&T){…}
您应该研究如何正确使用
模板
空函数(常数T&T){…}
您应该研究如何正确使用
模板
空函数(常数T&T){…}
模板
大小运算符-(typename mylist::iterator a,typename mylist::iterator b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
或
模板
size_t运算符-(迭代器&a,常量迭代器&b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
请注意迭代器上没有更改的引用和常量(如果不想更改,则可能不想通过引用进行传递)。模板
大小运算符-(typename mylist::iterator a,typename mylist::iterator b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
或
模板
size_t运算符-(迭代器&a,常量迭代器&b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
请注意迭代器上没有更改的引用和常量(如果不想更改,则可能不想通过引用进行传递)。模板
大小运算符-(typename mylist::iterator a,typename mylist::iterator b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
或
模板
size_t运算符-(迭代器&a,常量迭代器&b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
请注意迭代器上没有更改的引用和常量(如果不想更改,则可能不想通过引用进行传递)。模板
大小运算符-(typename mylist::iterator a,typename mylist::iterator b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
或
模板
size_t运算符-(迭代器&a,常量迭代器&b)
{
尺寸i=0;
while(a.node!=b.node){
++a;
++一,;
}
返回i;
}
注意迭代器上没有更改的引用和常量(如果不想更改,您可能不想通过引用传递)。如果我想随后将此运算符用于
列表
函数,我必须添加什么?因为事实上,我仍然得到一个无效的操作数错误。@Dochevsky什么是列表函数?我的意思是列表类中的函数。所以我有模板类列表{class迭代器{/*…*/};迭代器插入(迭代器,T);/*…*/}代码>我正在尝试在我的插入
函数中使用-
操作数。如果我想随后将此运算符用于列表
函数,我必须添加什么?因为事实上,我仍然得到一个无效的操作数错误。@Dochevsky什么是列表函数?我的意思是列表类中的函数。所以我有模板类列表{class迭代器{/*…*/};迭代器插入(迭代器,T);/*…*/}代码>我正在尝试在我的插入
函数中使用-
操作数。如果我想随后将此运算符用于列表
函数,我必须添加什么?因为事实上,我仍然得到一个无效的操作数错误。@Dochevsky什么是列表函数?我的意思是列表类中的函数。所以我有模板类列表{class迭代器{/*…*/};迭代器插入(迭代器,T);/*…*/}代码>我正在尝试在我的插入
函数中使用-
操作数。如果我想随后将此运算符用于列表
函数,我必须添加什么?因为事实上,我仍然得到一个无效的操作数错误。@Dochevsky什么是列表函数?我的意思是列表类中的函数。所以我有模板类列表{class迭代器{/*…*/};迭代器插入(迭代器,T);/*…*/}代码>我试图在我的插入
函数中使用-
操作数。
template <class Iterator>
size_t operator-(Iterator & a, const Iterator & b)
{
size_t i = 0;
while(a.node != b.node) {
++a;
++i;
}
return i;
}