gpt4 book ai didi

c++-cli - C++/CLI : Implementing IList and IList (explicit implementation of a default indexer)

转载 作者:行者123 更新时间:2023-12-04 02:35:21 24 4
gpt4 key购买 nike

我正在尝试实现同时实现IListIList<T>的C++/CLI类。

由于它们具有重叠的名称,因此我必须明确实现其中之一,自然的选择应该是IList。

索引器的隐式实现是:

using namespace System::Collections::Generic;
generic<class InnerT> public ref class MyList : public System::Collections::IList, IList<InnerT> {
// ...
property InnerT default[int]{
virtual InnerT get(int index);
virtual void set(int index, InnerT item);
}
}

我现在正在尝试声明IList的默认索引器。

我的猜测是这样的:
  property Object^ System::Collections::IList::default[int]{
virtual Object^ System::Collections::IList::get(int index);
virtual void System::Collections::IList::set(int index, Object^ item);
}

但这只是给我

error C2061: syntax error : identifier 'default'



有什么提示吗?

最佳答案

JaredPar's answer几乎可以正常工作。应该更改两件事:

  • 索引器属性需要一个不同的名称,因为隐式实现已采用了“默认”。
  • 覆盖的说明需要在set和get方法上完成,而不是在属性本身上完成。

  • IE。:
      property Object^ IListItems[int]{
    virtual Object^ get(int index) = System::Collections::IList::default::get;
    virtual void set(int index, Object^ item) = System::Collections::IList::default::set;
    }

    关于c++-cli - C++/CLI : Implementing IList and IList<T> (explicit implementation of a default indexer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/689704/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com