При компиляции ругается на функцию int size():
error: invalid application of 'sizeof' to incomplete type 'test1'
return sizeof(test1);
^
class test1;
class test
{
private:
int i;
char str[20];
public:
int size()
{
return sizeof(test1);
}
};
class test1: public test
{
public:
int testq()
{
return sizeof(test);
}
};
но если размещаю эту функцию вне самого класса (int test::size()) то все нормально.
014: Это утверждение неверно. Короткое объявление лишь сообщает компилятору, что класс с таким именем есть, но не дает ему никакой информации о полях и методах.
про inline-функции - функции, описанные cpp, тоже можно инлайнить. Собственно, для них ключевое слово inline и существует. А функции, которые определены непосредственно в классе, по умолчанию встраиваемые, и ключевое слово inline для них излишне.
> выше класса test, объявлен класс class test1;
> 014: Это утверждение неверно. Армянское Радио: это утверждение верно. Кое-кто путает объявление (declaration) с определением (definition).