Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 通过从操作员获取的cin输入创建类>&燃气轮机;_C++_Oop_Input_Cin - Fatal编程技术网

C++ 通过从操作员获取的cin输入创建类>&燃气轮机;

C++ 通过从操作员获取的cin输入创建类>&燃气轮机;,c++,oop,input,cin,C++,Oop,Input,Cin,我的任务是使用以下数据成员/成员函数创建以下类 计算机 内存(GB) 处理器速度(以GHz为单位) #岩心 硬盘驱动器存储大小(GB) 打印(虚拟功能) 桌面(从计算机继承) hasMonitor 显示器尺寸(英寸) 笔记本电脑(从计算机继承) 屏幕尺寸 群集(从计算机继承) 计算机数量 我应该添加一个虚拟打印功能,并为我拥有的每台台式机/笔记本电脑进行输入。有人能帮我弄清楚为什么它不接受任何信息吗 #include <iostream> using namespa

我的任务是使用以下数据成员/成员函数创建以下类

  • 计算机
    • 内存(GB)
    • 处理器速度(以GHz为单位)
    • #岩心
    • 硬盘驱动器存储大小(GB)
    • 打印(虚拟功能)
  • 桌面(从计算机继承)
    • hasMonitor
    • 显示器尺寸(英寸)
  • 笔记本电脑(从计算机继承)
    • 屏幕尺寸
  • 群集(从计算机继承)
  • 计算机数量
我应该添加一个虚拟打印功能,并为我拥有的每台台式机/笔记本电脑进行输入。有人能帮我弄清楚为什么它不接受任何信息吗

#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");
}
#包括
使用名称空间std;
类计算机{
公众:
内存;
双处理器速度;
int num_核;
int hd_存储;
计算机();
};
计算机::计算机()
{
ram=0;
处理器速度=0;
核数=0;
hd_存储=0;
}
类桌面:公共计算机{
公众:
布尔哈斯监视器;
双显示器尺寸;
桌面();
friend istream&operator>>(istream&isObject、桌面和桌面1);
};
桌面::桌面()
{
hasMonitor=true;
监视器大小=0;
}
istream和operator>>(istream和isObject、桌面和桌面1)
{
isObject>>desk1.hasMonitor;
isObject>>desk1.monitor\u大小;
isObject>>desk1.ram;
isObject>>desk1.0处理器速度;
isObject>>desk1.hd_存储;
isObject>>desk1.num_内核;
if(desk1.hasMonitor==0)
desk1.hasMonitor=false;
返回等对象;
}
类别手提电脑:公共电脑{
公众:
int屏幕尺寸;
笔记本电脑();
friend istream&operator>>(istream&isObject、笔记本电脑和lap1);
};
笔记本电脑::笔记本电脑()
{
屏幕大小=0;
}
istream和操作员>>(istream和iObject、笔记本电脑和lap1)
{
isObject>>lap1.ram;
isObject>>lap1.0处理器速度;
isObject>>lap1.hd_存储;
isObject>>lap1.num_岩芯;
isObject>>lap1.0屏幕尺寸;
返回等对象;
}
类别群集:公共计算机{
公众:
公司的内部数量;
friend istream&operator>>(istream&isObject、cluster&clust1);
簇();
};
cluster::cluster()
{
组件的数量=0;
}
istream&operator>>(istream&isObject、集群&集群1)
{
isObject>>clust1.ram;
isObject>>集群1.处理器速度;
isObject>>clust1.hd_存储;
isObject>>包含1.num_个岩芯;
isObject>>clust1.num of_comps;
返回等对象;
}
群集操作员+(常量计算机和组件1、常量计算机和组件2)
{
集群mrcluster;
mrcluster.ram=comp1.ram+comp2.ram;
mrcluster.processor\u speed=comp1.processor\u speed+comp2.processor\u speed;
mrcluster.num_cores=comp1.num_cores+comp2.num_cores;
mrcluster.hd_storage=comp1.hd_storage+comp2.hd_storage;
返回mrcluster;
}
int main()
{
笔记本电脑笔记本电脑1;
桌面桌面1;
桌面桌面2;
cluster mycluster=laptop1+desktop1+desktop2;
系统(“暂停”);
}

您没有要求在
主功能中输入任何内容
main
是程序的入口点,因此任何需要执行的操作都必须从那里开始(例如,请求输入的函数调用)。

您需要执行cin>>laptop1


顺便说一句,我会称您的基类计算机为非计算机

是否有错误?你看到什么(或没有看到什么)表明出了问题?没有错误。它应该给我一个选项,为desktop1 desktop2 laptop1 etcIm输入hasMonitor…等,这是一个非常新的选项,我不太熟悉类等,但是对于重载的>>,我会调用什么函数呢?
cin>>laptop1
将调用
操作员>>(ostream&,laptop&)
函数,用您要查找的数据填充
laptop1