我希望我的代码能够打印出:
B B
A B
B A
但它会打印输出。
Item Item
Item Item
Item Item
代码:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct Item {
Item(){}
virtual void method1 (Item x, Item y) {cout << "Item Item\n";}
};
struct A : public Item {
A(){}
};
struct B : public Item {
B(){}
virtual void method1 (B x, B y) {cout << "B B\n";}
virtual void method1 (A x, B y) {cout << "A B\n";}
virtual void method1 (B x, A y) {cout << "B A\n";}
};
int main ( void ) {
Item * a[2];
a[0] = new B; a[1] = new A;
a[0]->method1(*a[0], *a[0]);
a[0]->method1(*a[1], *a[0]);
a[0]->method1(*a[0], *a[1]);
}
struct
和class
在默认访问修饰符(public
vs.private
)方面有所不同。 - wkl