Вопрос Создание класса в хедере проблема

Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Компилятор срёт ошибками,которые визуалке не находит.В чём проблема?
1645179300901.png
upd: как визуалка видит код
1645179688275.png
C++:
class CLagRecord
{
    CBaseEntity* player;
    QAngle eyeangles;
    Vector velocity, origin, absorigin, mins, maxs;
    float sim_time, lower_yaw, duck_amount, resolved_yaw;
    int choked_time, rotate_side, flags, adjust_tick;
    bool shooting, jump, resolved;

    std::array<std::array<CAnimationLayer, 13>, 4> animation_layers = {};
    std::array<std::array<float, 24>, 4> pose_parameters = {};
    std::array<std::array<matrix3x4_t, 256>, 4> matrices = {};
    CLagRecord(CBaseEntity* player) {
        player = player;
        velocity = player->GetVelocity();
        origin = player->GetOrigin();
        absorigin = player->GetAbsOrigin();
        mins = player->GetCollision()->OBBMins();
        maxs = player->GetCollision()->OBBMins();
        sim_time = player->GetSimulationTime();
        lower_yaw = player->GetLowerBodyYaw();
        duck_amount = player->GetDuckAmount();
        float resolved_yaw;
        flags = player->GetFlags();
        //shooting = player->IsShooting();
        eyeangles = player->GetEyeAngles();

    }
};
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
660
Реакции[?]
396
Поинты[?]
16K
1645181986196.png
C++:
// объявление классов в С++
class /*имя класса*/
{
  private:
  /* список свойств и методов для использования внутри класса */
  public:
  /* список методов доступных другим функциям и объектам программы */
  protected:
  /*список средств, доступных при наследовании*/
};
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
Компилятор срёт ошибками,которые визуалке не находит.В чём проблема?
Посмотреть вложение 192852
upd: как визуалка видит код
Посмотреть вложение 192853
C++:
class CLagRecord
{
    CBaseEntity* player;
    QAngle eyeangles;
    Vector velocity, origin, absorigin, mins, maxs;
    float sim_time, lower_yaw, duck_amount, resolved_yaw;
    int choked_time, rotate_side, flags, adjust_tick;
    bool shooting, jump, resolved;

    std::array<std::array<CAnimationLayer, 13>, 4> animation_layers = {};
    std::array<std::array<float, 24>, 4> pose_parameters = {};
    std::array<std::array<matrix3x4_t, 256>, 4> matrices = {};
    CLagRecord(CBaseEntity* player) {
        player = player;
        velocity = player->GetVelocity();
        origin = player->GetOrigin();
        absorigin = player->GetAbsOrigin();
        mins = player->GetCollision()->OBBMins();
        maxs = player->GetCollision()->OBBMins();
        sim_time = player->GetSimulationTime();
        lower_yaw = player->GetLowerBodyYaw();
        duck_amount = player->GetDuckAmount();
        float resolved_yaw;
        flags = player->GetFlags();
        //shooting = player->IsShooting();
        eyeangles = player->GetEyeAngles();

    }
};
Ну раз на тебя успели побыковать и ты возможно не решил проблему, то помогу тебе с решением, хых. Короче, при создании класса и полей ( т.е переменных ) в нём без какого-либо модификатора ( как выше сказали: private, public, protected ) они сразу будут по умолчанию private. Инглиш лангуаге думаю знаешь, а значит, что при попытке получения private поля... ты его не сможешь получить, потому что оно бля приватное:roflanEbalo:


Так что логично будет дописать тупо public в начале, дабы ты мог получить доступ к полям

P. s.этот ответ оставлен на случай если ты прям реально французский хлеб и не догадался)
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Ну раз на тебя успели побыковать и ты возможно не решил проблему, то помогу тебе с решением, хых. Короче, при создании класса и полей ( т.е переменных ) в нём без какого-либо модификатора ( как выше сказали: private, public, protected ) они сразу будут по умолчанию private. Инглиш лангуаге думаю знаешь, а значит, что при попытке получения private поля... ты его не сможешь получить, потому что оно бля приватное:roflanEbalo:


Так что логично будет дописать тупо public в начале, дабы ты мог получить доступ к полям

P. s.этот ответ оставлен на случай если ты прям реально французский хлеб и не догадался)
Уже решил,там была немного другая проблема. Про public реально тупанул что не прописал, во всяком случае французкий хлебушек вкусный и голуби дольше живут
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Щась посидел и выяснил что когда пихаю этот клас в cpp файл,то всё ок работает. Думаю проблема не так уж и проста:roflanEbalo:
Код:
class CLagRecord
{
public:
    CBaseEntity* player = nullptr;
    QAngle eyeangles = {};
    Vector velocity, origin, absorigin, mins, maxs = {};
    float sim_time, lower_yaw, duck_amount, resolved_yaw;
    int choked_time, rotate_side, flags, adjust_tick;
    bool shooting, jump, resolved;

    std::array<std::array<CAnimationLayer, 13>, 4> animation_layers = {};
    std::array<std::array<float, 24>, 4> pose_parameters = {};
    std::array<std::array<matrix3x4_t, 256>, 4> matrices = {};
    void CLag_Record(CBaseEntity* player) {
        player = player;
        velocity = player->GetVelocity();
        origin = player->GetOrigin();
        absorigin = player->GetAbsOrigin();
        mins = player->GetCollision()->OBBMins();
        maxs = player->GetCollision()->OBBMins();
        sim_time = player->GetSimulationTime();
        lower_yaw = player->GetLowerBodyYaw();
        duck_amount = player->GetDuckAmount();
        float resolved_yaw;
        flags = player->GetFlags();
        //shooting = player->IsShooting();
        eyeangles = player->GetEyeAngles();

    }
};
 
Участник
Статус
Оффлайн
Регистрация
15 Янв 2021
Сообщения
492
Реакции[?]
289
Поинты[?]
79K
что тебе мешает сделать вот так?
Посмотреть вложение 192937
Мне то ничего не мешает ахах. Я просто не стал уже разжёвывать про принципы ООП, потому что обычному пастеру, который уле-еле знает плюсы это в принципе не всралось...

edit. Францсуз не злись, не со зла же говорю, все мы "пастеры".
 
Сверху Снизу