2012-07-06 38 views

Trả lời

4

Tương tự như đối với các chức năng: 0 hoặc 1. Nó là rất dễ dàng để kiểm tra quá:

class A 
{ 
public: 
    void f() 
    { 
     static int a = 0; 
     ++a; 
     cout << a << endl; 
    } 
}; 


int main() 
{ 
    A a; 
    a.f(); 
    a.f(); 
    A b; 
    b.f(); 
} 

Output:

1 
2 
3 

Tuy nhiên, nếu bạn derieve từ class A và làm cho chức năng ảo như thế này:

class A 
{ 
public: 
    virtual void f() 
    { 
     static int a = 0; 
     ++a; 
     cout << a << endl; 
    } 
}; 

class B:public A 
{ 
public: 
    void f() 
    { 
     static int a = 0; 
     ++a; 
     cout << a << endl; 
    } 
}; 

sau đó biến số a sẽ khác nhau cho cơ sở và cho mỗi lớp dẫn xuất (vì các hàm cũng khác nhau).

2

Cùng ... chức năng thành viên là trực giao là địa phương tĩnh.

+0

+1 cho 'trực giao' – steffen

Các vấn đề liên quan