Пожалуйста, помогите питонисту с C++!
Приветствую!
Upd: был сонный, вот и забыл написать, что изучаю плюсы по вышке
Вот как описан класс в задании
Марка - char*
Мощность - int
Цена - float
В задании указано написать функцию ввода данных в объект с клавиатуры, затем создать объект с помощью конструктора по умолчанию и ввести данные в объект с помощью клавиатуры.
В общем, ввод работает, но либо программа завершается, либо не меняются параметры объекта
Юзаю Microsoft Visual C++
Уже просил в сети помощи, вот что ответили
... вы создаете временный объект Car с помощью вызова конструктора, после выхода из Input этот объект сразу уничтожается
Так как мне получить объект с введёнными с клавиатуры параметрами и вывести ЕГО параметры на экран?
Ах да, класс автомобиль с параметрами Марка, цена, мощь
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
class Car {
private:
char* marka;
int power;
float price;
public:
Car(char* m = "Renault", int pw = 150, float p = 1255000.0){
marka = m;
power = pw;
price = p;
};
public:
void Print(){
cout << "Mark is " << marka << ", price equals " << price << ", power is " << power << endl;
};
void Input();
};
void Car::Input(){
char *mark;
//Car new_;
mark = new char;
//new_ = new Car;
int pw;
float price;
cout << "Power of automobile: " << endl;
cin >> power;
cout << "Price of automobile: " << endl;
cin >> price;
cout << "Mark of automobile: " << endl;
cin >> marka;
Car output(marka,power,price);
};
int main() {
Car default_;
Car ipnut;
Car example("Toyota",145,1205000.0);
example.Print();
default_.Print();
ipnut.Input();
ipnut.Print();
return 0;
}
Гы.
Это так не работает. Вообще так не работает. Может вы возьмёте книгу и почитаете? А то вы наобум и напролом пытаетесь на манер питона. Не прокатит.
char* --> это ни фига не строка. Это указатель на область памяти, где вам е щё массив создать надо, и вы не сможете в него читать из std::cin, не выделив достаточно места. Оно у вас просто вылетит потому что вы пишете туда, куда нельзя.
меняйте все char* на std::string, и пробуйте снова.
Для std::string, нужен инклюд. #include <string>