iostream не печатает на терминал во втором исходном классе (c ++) - PullRequest
1 голос
/ 06 июля 2019

Когда я пытаюсь сделать cout в конструкторе, он не будет распечатан. Я знаю, что cout работает на моем терминале, потому что я могу вызвать его из main (), но не из моего класса CharacterStats.cpp с заголовком CharacterStats.hpp.

Нет вывода терминала, как должно быть. Я ожидаю, что "---DATALESS UNIT CREATED---" появится в выводе

Я использую

g++ -o a main.cpp CharacterStats.cpp CharacterStats.hpp    
./a 

для компиляции и выполнения и ничего не печатать

main.cpp

#include "CharacterStats.hpp"
int main(void){
    CharacterStats coreUser();
    return 0;
}

CharacterStats.cpp

#include "CharacterStats.hpp"
#include <iostream>

using namespace std;

CharacterStats::CharacterStats(char name, bool type, short strength, short armor, short resist, short speed, short luck){
    cout << "---CORE DECLARED---" << endl;
    this->name = name;
    this->type = type;
    this->strength = strength;
    this->armor = armor;
    this->resist = resist;
    this->speed = speed;
    this->luck = luck;
}
CharacterStats::CharacterStats(){
    cout << "---DATALESS UNIT CREATED---" << endl;
}

CharacterStats.hpp

#ifndef CHARACTER_STATS
#define CHARACTER_STATS

class CharacterStats{
    private:
        char name;
        bool type;
        short strength, armor, resist, speed, luck;

    public:
        CharacterStats(char, bool, short, short, short, short, short);
        CharacterStats();
};
#endif /* CHARACTER_STATS */

1 Ответ

2 голосов
/ 06 июля 2019

Это потому, что вы не вызываете своего конструктора.

 CharacterStats coreUser();

объявляет функцию без аргументов и возвращает CharacterStats.

То, что вы хотите, это

CharacterStats coreUser;

Легкая ошибка.

...