c++程序中的重要问题通过编程来体现(未完待续)

来源:互联网 发布:电脑淘宝网页版登录 编辑:程序博客网 时间:2024/05/16 01:52

1.重载

代码:

#include<iostream>
using namespace std;
class time
{
    int hour,minute,second;
public:
    time(int h,int m,int s)
    {
        hour=h;minute=m;second=s;
    }
    void display()
    {
        cout<<hour<<":"<<minute<<":"<<second<<endl;
    }
    void display()const
    {
        cout<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
    }


};
int main()
{
    time t1(12,26,9);
    t1.display();
    const time t2(7,19,28);
    t2.display();

运行结果:

12:26:9

7时19分28秒



2.虚函数(virtual)

代码:

#include<iostream>
using namespace std;
class Mammal
{
public:
    virtual void Speak()
    {
        cout<<"Mammal Speak!"<<endl;
    }
};
class Dog:public Mammal
{
public:
    void Speak()     //把基类的虚函数覆盖了,看输出结果
    {
        cout<<"Dog Speak!"<<endl;
    }


};
int main()
{
    Dog a;
    Mammal&b=a;
    a.Speak();
    b.Speak();
}

运行结果 :

Dog Speak!

Dog Speak!



3.虚基类的应用(在多重派生的过程中,若使公共基类在派生类中只有一个拷贝,则可将这种类型说明为虚基类)

代码:

#include<iostream>
using namespace std;
class B
{
public:
    int b;
};
class B1:virtual public B    //在多重派生的过程中,若使公共基类在派生类中只有一个拷贝,则可将这种类型说明为虚基类
{
private:
    int b1;
};
class B2:virtual public B
{
private:
      int b2;
};
class C:public B1,public B2
{
private:
    int d;
};
int main()
{
     C c;
     c.B1::b=5;
     c.B2::b=10;
     cout<<"path B1==>"<<c.B1::b<<endl;
     cout<<"path B2==>"<<c.B2::b<<endl;
}

运行结果:

path B1==>10

path B2==>10