这是一个说明我的问题的例子:
class Foo1
{
virtual void FooMethod() __attribute__((deprecated)) = 0;
};
class Foo2 : public Foo1
{
virtual void FooMethod() = 0;
};
我的班级Foo1
有一个纯虚方法FooMethod
。我不想让用户再使用它了。我想让它们在继承的类Foo2
中使用此方法。
Foo1::FooMethod()
已被弃用并放入Foo2
:Foo2::FooMethod()
。然后Foo2::FooMethod()
覆盖Foo1::FooMethod();
如果用户尝试重载Foo1::FooMethod()
,他将收到编译警告。
我的问题是,如果用户覆盖Foo2::FooMethod()
,他也会收到警告。
如何实施“不推荐重载Foo1::FooMethod()
,您必须覆盖FooMethod()
到Foo2
”。我无法删除Foo1::FooMethod()
的兼容性。
谢谢!
答案 0 :(得分:0)
如何实现“不推荐使用重载Foo1 :: FooMethod(),必须通过Foo2重载FooMethod()”。我无法删除Foo1 :: FooMethod()以获得兼容性。
此时,您在设计中造成了如此混乱(:P),我会坚持使用文档。
告诉您的用户该功能已弃用且不应使用,然后继续。