Почему я не могу создать объект класса в поле другого класса? - PullRequest
0 голосов
/ 21 апреля 2019

Я не могу создать в классе A объект класса B, указатель на класс B, и у меня есть проблема с объектом класса C.Вы можете мне помочь?

class A {
public:
    A() {
        number = 5;
        ptr = &number;
        v.push_back(3);
        ptrB = new B();
        ptrC = new C();
    }
    int number;
    int* ptr;
    std::vector <int> v;
    B bClass;
    B* ptrB;
    C *ptrC;
};

class B : public A {
public:
    B();
};


class C : public virtual A {
public:
    C();
};

int main()
{
    A* aClass = new A();
    std::cout << aClass->number << " " << aClass->ptr << " ";
}

(32): ошибка C3646: «bClass»: неизвестный спецификатор переопределения (32): ошибка C4430: отсутствует указатель типа - предполагается int.Примечание: C ++ не поддерживает ошибку default-int C2143: синтаксическая ошибка: отсутствует ';'до '' ошибка C4430: отсутствует указатель типа - предполагается int.Примечание: C ++ не поддерживает ошибку default-int C2238: неожиданный токен (ы), предшествующий ';'(34): ошибка C2143: синтаксическая ошибка: отсутствует ';'до '' (34): ошибка C4430: отсутствует указатель типа - предполагается int.Примечание: C ++ не поддерживает default-int (34): ошибка C2238: неожиданный токен (ы), предшествующий ';'(26): ошибка C2065: «ptrB»: необъявленный идентификатор (26): ошибка C2061: синтаксическая ошибка: идентификатор «B» (27): ошибка C2065: «ptrC»: необъявленный идентификатор (27): ошибка C2061: синтаксическая ошибка:идентификатор 'C'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...