gpt4 book ai didi

C++ 在两个不同的类中实现一个接口(interface)

转载 作者:行者123 更新时间:2023-11-28 07:39:40 25 4
gpt4 key购买 nike

我正在尝试为我的 gui 实现抽象一个通用接口(interface),但我很难弄清楚如何干净利落地做到这一点。这是我想要实现的目标的简化版本。

class IBorderable
{
virtual unsigned int getBorderWidth(BorderIndex index) const = 0;
virtual void setBorderWidth(BorderIndex index, unsigned int width) = 0;
};

class Square : public IBorderable
{
// Implement while limiting BorderIndex to only 4
// Calling with invalid BorderIndex is handled at compile time
};

class Cube : public IBorderable
{
// Implement while limiting BorderIndex to only 6
};

理想情况下,我希望通过多态性来实现这一点,而无需任何条件检查来确保 BorderIndex 在范围内。是否有可能让它在编译时抛出错误?我本来想使用强类型枚举,但无法派生它们。

最佳答案

如果没有使通用接口(interface)的整个点变得无用的技巧,恐怕在编译时检查是不可能的。在运行时做这件事当然很容易。

只有一个 IBorderable 引用/指针的编译器不知道它背后是什么类型的派生对象,它也不需要 - 这就是接口(interface)和虚函数的全部意义。

关于C++ 在两个不同的类中实现一个接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100432/

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