1.虚函数:virtual关键字来定义,主要是基类的派生类,作用是为了派生类可以在相同函数名的时候,可以有自己的功能,而不用执行基类的行为。
class pp
{
public:
virtual void test();//
};
void pp::test()
{
cout<<"test"<<endl;
}
class aa :public pp
{
public:
void test(){cout<<"tt"<<endl;}
};
主函数:
int main()
{
pp p3;
aa p4;
pp *p1=&p3;
aa *p2=&p4;
p1->test();
p2->test();
p1=&p4;//把定义为派生类的对象赋值给基类的指针,虚函数才有作用
p1->test();
<span style="white-space:pre"> </span>return 0;
}
结果是:test tt tt
2.关键字:static(静态成员):
静态成员如果有n个同类的对象,那么每一个对象都分别有自己的数据成员,不同对象的数据成员各自有值,互不相干。但是有时人们希望有某一个或几个数据成员为所有对象所共有。这样可以实现数据共享。
如果想在同类的多个对象之间实现数据共享,也不要用全局对象,可以用静态的数据成员。
- 如果只声明了类而未定义对象,则类的一般数据成员是不占内存空间的,只有在定义对象时,才为对象的数据成员分配空间。