Мое назначение Я создаю следующие классы со следующими членами данных/функциями-членами.
Я должен добавить функцию виртуальной печати и ввести данные для каждого рабочего стола/ноутбука, который у меня есть. Может ли кто-нибудь помочь мне разобраться, почему он не принимает никаких мер для этого?
#include <iostream>
using namespace std;
class computers{
public:
int ram;
double processor_speed;
int num_cores;
int hd_storage;
computers();
};
computers::computers()
{
ram=0;
processor_speed=0;
num_cores=0;
hd_storage=0;
}
class desktop: public computers{
public:
bool hasMonitor;
double monitor_size;
desktop();
friend istream& operator>>(istream& isObject, desktop& desk1);
};
desktop::desktop()
{
hasMonitor=true;
monitor_size=0;
}
istream& operator>>(istream& isObject, desktop& desk1)
{
isObject>>desk1.hasMonitor;
isObject>>desk1.monitor_size;
isObject>>desk1.ram;
isObject>>desk1.processor_speed;
isObject>>desk1.hd_storage;
isObject>>desk1.num_cores;
if(desk1.hasMonitor==0)
desk1.hasMonitor=false;
return isObject;
}
class laptop:public computers{
public:
int screen_size;
laptop();
friend istream& operator>>(istream& isObject,laptop& lap1);
};
laptop::laptop()
{
screen_size=0;
}
istream& operator>> (istream& isObject, laptop& lap1)
{
isObject>> lap1.ram;
isObject>> lap1.processor_speed;
isObject>> lap1.hd_storage;
isObject>> lap1.num_cores;
isObject>> lap1.screen_size;
return isObject;
}
class cluster:public computers{
public:
int num_of_comps;
friend istream& operator>>(istream& isObject,cluster& clust1);
cluster();
};
cluster::cluster()
{
num_of_comps=0;
}
istream& operator>>(istream& isObject,cluster& clust1)
{
isObject >> clust1.ram;
isObject >> clust1.processor_speed;
isObject >> clust1.hd_storage;
isObject >> clust1.num_cores;
isObject >> clust1.num_of_comps;
return isObject;
}
cluster operator+(const computers& comp1, const computers& comp2)
{
cluster mrcluster;
mrcluster.ram = comp1.ram+comp2.ram;
mrcluster.processor_speed = comp1.processor_speed+comp2.processor_speed;
mrcluster.num_cores = comp1.num_cores+comp2.num_cores;
mrcluster.hd_storage = comp1.hd_storage+comp2.hd_storage;
return mrcluster;
}
int main()
{
laptop laptop1;
desktop desktop1;
desktop desktop2;
cluster mycluster = laptop1+desktop1+desktop2;
system("pause");
}
Вы не запрашиваете никаких входных данных в своей main
функции. main
- ваша точка входа для вашей программы, поэтому все, что вы хотите сделать, должно происходить там (например, вызов функции для запроса ввода).
вам нужно сделать cin >> laptop1
btw Я бы назвал ваш компьютер базового класса не компьютерами
cin >> laptop1;
будет вызыватьoperator>>(ostream&, laptop&)
чтобы заполнитьlaptop1
данными, которые вы ищете.