Изучаю С++
. У меня есть такой код:
struct Cls {
Cls(char c, double d, int i) {
this->c = c;
this->d = d;
this->i = i;
}
public:
char getC() {
return c;
}
private:
char c;
double d;
int i;
};
int main() {
Cls *cls = new Cls(1, 2.0, 3);
std::cout << (*cls).getC() << std::endl;
return 0;
}
На консоль распечатывается пустая строка. Не понимаю почему.
А кстати, как у вас выглядит символ с кодом 1?... У меня (Windows) честно выводит рожицу :)
Если вы хотели увидеть 1
, то нужно передавать символ, а не код 1:
new Cls('1', 2.0, 3);
А вообще я бы еще подчистил (это не принципиально) ваш код так:
struct Cls
{
Cls(char c, double d, int i):c(c),d(d),i(i){}
char getC() const { return c; }
private:
char c;
double d;
int i;
};
int main()
{
Cls *cls = new Cls('1', 2.0, 3);
std::cout << cls->getC() << std::endl;
}
Вкратце - в конструкторе не присваивать, а инициализировать. Если структура - лишний public
ни к чему. Ну и функция-член, ничего ме меняющая - лучше делать ее константной.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вводится текст с клавиатуры, в тексте открываются скобки, внутри которых содержится другой текстНужно вывести этот другой текст через cout
Вопрос из разряда для начинающих, но учитывая что я под линуксом делаю свой первый проект - думаю это простительно
Пытаюсь из кода на python, распараллеленного с помощью ThreadPoolExecutor вызвать код на C++Создается впечатление, что в момент входа в C++ функцию все питоновские...