C++--靜態、、動態聯編

#include
#include

using namespace std;

class Parent
{
public:
virtual void func()
{
cout << “void func()” << endl;
}

virtual void func(int i)
{
    cout << "void func(int i) : " << i << endl;
}

virtual void func(int i, int j)
{
    cout << "void func(int i, int j) : " << "(" << i << ", " << j << ")" << endl;
}

};

class Child : public Parent
{
public:
void func(int i, int j)
{
cout << "void func(int i, int j) : " << i + j << endl;
}

void func(int i, int j, int k)
{
    cout << "void func(int i, int j, int k) : " << i + j + k << endl;
}

};

void run(Parent* p)
{
p->func(1, 2); // 展現多態的特性
// 動態聯編
}

int main()
{
Parent p;

p.func();         // 靜態聯編
p.func(1);        // 靜態聯編
p.func(1, 2);     // 靜態聯編

cout << endl;

Child c;

c.func(1, 2);     // 靜態聯編

cout << endl;

run(&p);
run(&c);

return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章