- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是C++初学者,最近在研究虚函数。有些问题让我很困惑。
例如:
class A {
public:
virtual void f() {
//do something;
}
}
class B: public A {
public:
virtual void f() {
//do something;
}
}
class A
包含一个虚函数 f()
, 和 class B
继承它。里面class B
, 函数 f()
也被声明为虚拟的,所以这是否意味着 f()
在 class B
重载 f()
在 class A
?它是否允许继承 B
的类重载f()
?或者 B
定义一个不同于 f()
的新虚函数在 class A
?
虚函数提供了一种重载方法的方法。如果B
继承A
并且不声明 f()
作为virtual
, 然后可以上课 C
继承B
重载 f()
并实现多态?
最佳答案
inside class B, the function f() also be declared as virtual, so does this mean f() in class B overload f() in class A
不,它不会重载。它覆盖。此外,关键字 virtual
在类 B
中是可选的。 B::f()
将始终是一个virtual
函数,无论您是否编写virtual
。
术语重载 用于定义具有相同 名称但不同 参数的函数。在您的例子中,函数 f
的签名在两个类中完全相同,这意味着它不是重载;派生类基本上覆盖 f()
的基类定义。
关于c++ - 关于c++虚函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910578/
我有一个特别的问题想要解决,我不确定是否可行,因为我找不到任何信息或正在完成的示例。基本上,我有: class ParentObject {}; class DerivedObject : publi
在我们的项目中,我们配置了虚 URL,以便用户可以在地址栏中输入虚 URL,这会将他们重定向到原始 URL。 例如: 如果用户输入'http://www.abc.com/partner ',它会将它们
我是一名优秀的程序员,十分优秀!