请问一下c++中成员对象和虚函数有哪些不同之处?都是多态性的体现吗
虚函数是多态性体现
成员对象应该说是封装性的体现
你应该问有什么相同点吧?相同点就是他们都放到类里面进行定义,再没有什么共同点了。
对象 和 虚函数 是两个概念哈,需要分开理解。
1.对象:又叫实例,可理解为某个类的具体变量,但是我们不叫他变量,叫他实例或对象。
例如下面的例子里面A是一个类,a就是A类的一个对象。
class A{
int value;
string name;
};
A a;
2.虚函数:类中声明的带有virtual关键字的函数。一般我们喜欢在父类中声明虚函数,在子类中定义虚函数的实现,这样可以实现函数的多态调用。
例如下面的例子中 A 是父类,声明了一个叫Print的虚函数,B是A的其中一个子类,子类中定义了虚函数的具体实现是打印出 Hello World。
那么可以通过 B 类的一个对象 b 来调用这个Print函数, 可以定义更多的子类 C D E。。。。去实现更多的打印,通过他们的对象调用Print,实现Print的多态调用。
class A {
public:
virtual int Print();
}
class B: public A {
pubilc:
Print() { printf("Hello world! \n");};
}
int main()
{
B b;
b.Print();
return 0;
}