- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您好,我刚刚完成期末考试。有一道题是“定义 C++ 中的共同祖先问题”,并说明使用语言的什么特性来解决这个问题。
我不记得曾经在类里面学习过或听说过共同祖先问题。但是我写了以下内容:
我说这和继承有关。如果一个父类和一个子类定义了相同的方法,具有相同的方法签名。因此,例如,如果我有 Parent 类和 Child 类。
在类里面我有家长
void sayHello(){
cout << "hello I'm a parent" <<endl;
}
然后在类里面我有 child
void sayHello(){
cout << "hello I'm a child" <<<endl;
}
如果我有
Parent* p1;
Child* c1 = new Child();
p1 = & c1;
如果我调用 p1.sayHello()
我会调用method sayHello()
来自父类,即使它绑定(bind)到 Child 类型的实例。
因此,为了解决这个问题,我们必须使用 virtual 关键字并说
virtual void sayHeyllo(){
.....
}
所以当我调用 p1.sayHello() 时,它会调用子类而不是父类的方法。
这是正确的吗?我只是猜测了一下,但它有点道理。我用谷歌搜索了 C++ 的共同祖先问题,但没有找到任何结果。你知道我说得对吗?
谢谢。
最佳答案
我认为他们指的是继承钻石。当您遇到类似以下情况时:
struct A {};
struct B : A {};
struct C : A {};
struct D : B, C {}; // here is the problem
D
中的问题是 A
有两份拷贝,一份来自 B
,一份来自 C
.要解决此问题,您必须使用虚拟继承
:
struct A {};
struct B : virtual A {};
struct C : virtual A {};
struct D : B, C {}; // No problem!
关于C++ 共同祖先问题。它是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1878055/
所以,我有一个类似于 this one 的用例,但我觉得有一些额外的细节值得提出一个新问题。 ( related questions ,供引用) 我正在编写一个实现 a cycle 的数据结构.基本设
我正在使用 Django 编写一个社交网络应用程序,需要实现类似于 Facebook“Mutual Friends”概念的功能。我有一个像这样的简单模型: class Friend(models.Mo
我有一个 iOS 应用程序,用户可以在其中使用 Facebook 登录并授予 user_friends 权限。从 Graph API 2.0 开始,Facebook 声称你无法获取两个人之间所有的共同
我想知道将来对我来说最简单的方法是什么,可以使查询既有效又不那么复杂。 我应该像这样保存双向关系吗 from_id=1, to_id=2from_id=2, to_id=1 或者只创建一个唯一的行 f
我是一名优秀的程序员,十分优秀!