error: invalid use of incomplete type ‘class Print’

#include<iostream>

using namespace std;

class Print;

class Class{
    Print * p;
    public:
    void foo(){p -> print();}
};
 
class Print{
public:
    void print(){
        cout << "PRINT\n";
    }
};


int main(){

}

Подскажите почему я могу использовать метод print? как его тогда вызвать если мне нужно определение класса Print только после определения класса Class?


Ответы (1 шт):

Автор решения: Harry

Примерно так:

#include<iostream>

using namespace std;

class Print;

class Class{
    Print * p;
    public:
    void foo();
};
 
class Print{
public:
    void print(){
        cout << "PRINT\n";
    }
};

void Class::foo(){p -> print();}

int main(){

}
→ Ссылка