- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个类(foo),它有一个整数和一个字符。我希望能够用从文件加载的信息填充此数据,因此我添加了一个加载函数,该函数将 foo 的一个成员变量(基于 ID)的指针返回到一个对象,然后将其设置为加载的值从文件中。在这种情况下我可以使用自动返回类型,但我希望该函数是虚拟的,以便被剥夺的类可以在它们有更多变量的情况下使用不同的 ID。我知道我可以使用 void 指针,但我希望避免使用它。
最佳答案
这不是 virtual
的好用例, 因为你调用 virtual
通过带有参数和返回类型的基类指针作为成员,它根据运行时派生实例的类型工作。 virtual
成员不能返回一大堆不同的东西,甚至不能以不同的方式被调用。这些是具有静态分派(dispatch)的不同重载函数。
如果你需要一堆不同的成员来获取和返回 char
, int
或其他类型,您希望将它们编写为单独的重载函数,或者可能作为非 virtual
模板,例如 template <typename T> T* foo::bar(const T&);
.
如果您需要返回一个可以指向任何类型对象的指针,那么它应该是指向它们的公共(public)基类的指针。如果真的没有,语言规则允许你使用 void*
。指向任何类型的对象指针,但(如您所说)这是一种代码味道。
关于C++如何使虚函数返回任何类型的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51604172/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!