面向对象程序设计语言中提到的:封装,继承等特点。这是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/17 03:12:43
还有“多态”是什么意思?

简单的说,建立一个父类的变量,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个变量调用这个函数的时候,定义这个变量的类,也就是父类,里的同名函数将被调用,当在父类里的这个函数前加virtual关键字,那么子类的同名函数将被调用

class A {
public:
A() {}

virtual void foo() {
cout << "This is A." << endl;
}
};

class B : public A {
public:
B() {}

void foo() {
cout << "This is B." << endl;
}
};

int main(int argc, char* argv[]) {

A *a = new B();
a->foo();

return 0;
}

这将显示:
This is B.

如果把virtual去掉,将显示:
This is A.