Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Можно ли сделать, чтобы в конструкторе данные вводил пользователь с++

ахахахах ахахахах Мастер (1335), закрыт 1 месяц назад
#include <iostream>
#include <string>

using namespace std;

class Building {
private:
int year;
string type;
public:
Building(int y, string t) {
year = y;
type = t;
}

void get_info() {
cout << year << type << endl;
}
};

int main() {
setlocale(LC_ALL, "RU");

Building school(22, "Дом");
school.get_info();

return 0;
}
Лучший ответ
Николай Веселуха Высший разум (360818) 1 месяц назад
Можно вот так.
 #include  
#include

using namespace std;

static int input(istream& inp, const char* prompt) {
cout << prompt;
int value;
inp >> value;
inp.ignore(0x1000, '\n');
return value;
}

class Building {
public:
Building()
: year(0) {}
Building(const int year, const string& type)
: year(year), type(type) {}
private:
int year;
string type;
static friend istream& operator>>(istream& inp, Building& bld) {
bld.year = input(inp, "Год: ");
cout << "Тип строения: ";
getline(inp, bld.type);
return inp;
}
static friend ostream& operator<<(ostream& out, const Building& bld) {
return out << bld.year << ' ' << bld.type;
}
};

int main() {
system("chcp 1251 > nul");
Building home;
cin >> home;
cout << home << '\n';
system("pause > nul");
}
Остальные ответы
BSoD ‮ ERAWTFOS Профи (846) 1 месяц назад
на паскале програмируй лучле
Артём Антипов Ученик (103) 1 месяц назад
С кетчупом будет повкусней
Roots Мастер (2433) 1 месяц назад
Да, конечно можно сделать ввод данных в конструкторе, но обычно такое считается плохой идеей
Данные лучше запросить до вызова конструктора и туда передать
RootsМастер (2433) 1 месяц назад
Конструктор - это такая же функция, просто она вызывается автоматически при создании экземпляра класса и не может ничего возвращать
ахахахах ахахахах Мастер (1335) Roots, спасибо!
Похожие вопросы