2014-02-11 3 views
0

Код тестового кода довольно понятен. Итак, в основном, можно ли сделать это без использования файлов .cpp?Два класса, используя друг друга

class A 
{ 
public: 

    static int i; 

    static void test(void) 
    { 
     std::cout << "B::i = " << B::i << std::endl; 
    } 
}; 

class B 
{ 
public: 

    static int i; 

    static void test(void) 
    { 
     std::cout << "A::i = " << A::i << std::endl; 
    } 
}; 

int A::i = 1; 
int B::i = 2; 

int main(int argc, char **argv) 
{ 
    A::test(); 
    B::test(); 

    return 0; 
} 

ответ

5

Определение A::test() и B::test() снаружи.

class A 
{ 
public: 
    static int i; 
    static void test(void); 
}; 

class B 
{ 
public: 
    static int i; 
    static void test(void); 
}; 

int A::i = 1; 
int B::i = 2; 

void A::test(void) 
{ 
    std::cout << "B::i = " << B::i << std::endl; 
} 

void B::test(void) 
{ 
    std::cout << "A::i = " << A::i << std::endl; 
} 
+0

Damnit Я знал это! Почему вы всегда должны забывать, когда вам это действительно нужно? – Vallentin

+0

Вы можете дать обряд обвинений. Поэтому все будут легко поняты. –

Смежные вопросы