Fehler: keine übereinstimmung für die operator ==

Ich erhalte einen Fehler für mehrere Bereiche meiner drei Dateien. (Ich hab auch Probleme mit meiner Standard-Konstruktor, deshalb ist es auch auskommentiert. Aber ich möchte dieses problem lösen, erste)

//ComputerType.h
//************************************************************************
//This file gives the specification of a ComputerType abstract data type
//************************************************************************
// #ifndef COMPUTERTYPE_H
    // #define COMPUTERTYPE_H

      #include<fstream>
      #include<iostream>
      #include<iomanip>
      #include<string>
      #include<cctype>

      using namespace std;

      class ComputerType
      {
       public:

    //    ComputerType();
         //******************************************************************************
         //Default Constructor.
         //Purpose: Initialize the data by default value.
         //Input: None.
         //Precondition: None.

  ComputerType(int initID, string initPrcsr, string initRAMsize, string initDiskSize, string initCompType, float initcost, string initLab);
     //*******************************************************************************
     //Purpose: To initialize the data.
     //Input: InitID, initPrcsr, initRAMSize, initDiskSize, initCompType, initCost, initLab.
     //Precondition: initID, initPrcsr, initRAMSize, initDiskSize, initCompType, initCost, initLab have values.
     //Output: None.
     //PostCondition: Class object is constructed && Computer is set to incoming parameters.
     //Note: None.
     //********************************************************************************

     void SetComputer(int ID, string processorDesc, string RAM, string disk, string type, float compCost, string lab);
     //*******************************************************************************
     //Purpose: To set object data to value for use.
     //Input: ID, processorDesc, RAM, disk, type, compCost, lab.
     //Precondition: ID, processorDesc, RAM, disk, type, compCost, lab have values.
     //Output: None.
     //PostCondition: Object values are set to incoming parameters.
     //Note: None.
     //*******************************************************************************
 void SetComputerType(string& computerTypeConvert);
     //*******************************************************************************
     //Purpose: To set private data computerType to value for use.
     //Input: computerTypeConvert.
     //Precondition: typeConvert has value.
     //Output: None.
     //PostCondition: Object value computerType is set to incoming parameters.
     //Note: None.
     //*******************************************************************************

 string Processorls();
     //******************************************************************************
     //Purpose: Function Processorls returns the computer processor.
     //Input: None.
     //Pre: Object exists.
     //Output: string.
     //Post: processor is returned.
     //Note: None.
     //******************************************************************************

  string Locationls();
     //******************************************************************************
     //Purpose: Returns the computer.s lab location.
     //Input: None.
     //Pre: Object exists.
     //Output: string.
     //Post: string labLocation is returned.
     //Note:  None
     //******************************************************************************

     void ReadRd(ifstream& inFile);
     //******************************************************************************
     //Purpose: Function reads idNumber, processor, RAMSize, DiskSize, computerType,
     //cost, and labLocation from file, and assigns them to object variables.
     //Input: inFile.
     //Pre: inFile file open and OK.
     //Output: None.
     //Post: idNumber, processor, RAMSize, DiskSize, computerType, cost, and labLocation are stored from //file into object.
     //Note:  None.
  void PrintRd(ofstream& outFile);
     //******************************************************************************
     //Purpose: Function PrintRd prints idNumber, processor, RAMSize, DiskSize, computerType, cost and //labLocation to a file.
     //Input: outFile.
     //Pre: OutFile open and ok.
     //Output: float, string.
     //Post: function prints data to outFile.
     //Note:  none.
     //*****************************************************************************
  private:

     int idNumber;
     string processor;
     string RAMSize;
     string DiskSize;
     string computerType;
     float cost;
     string labLocation;
  };
//*****************************************************************************************

Umsetzung Datei:

 //ComputerType.cxx
  //*********************************************************
  //This file implements the ComputerType member functions
  //*********************************************************
  #include "ComputerType.h"
  #include <iostream>
  #include <iomanip>
  #include <fstream>
  #include <cctype>
  #include <string>
  using namespace std;

  //Private members of class:
  //int idNumber;
  //string processor;
  //string RAMSize;
  //string DiskSize;
  //string computerType;
  //float cost;
  //string labLocation

// ComputerType::ComputerType()
  //******************************************************************************
  //Default Constructor.
  //Purpose: Initialize the data by default value.
 //Precondition: None.
  //Output: None.
  //Postcondition: idNumber == -5555 && processor == NONE & RAMSize == Zero && DiskSize == Zero &&
  //computerType == NONE && cost == -777.00 && labLocation = NONE.
  //Note: None.
  //******************************************************************************
 //{
   //idNumber = -5555;
   //processor = "NONE";
   //RAMSize = "Zero";
   //DiskSize = "Zero";
   //computerType = "NONE";
   //cost = -777.00;
   //labLocation = "NONE";
 //}
  //***********************************************************************************8

  ComputerType::ComputerType(int initID, string initPrcsr, string initRAMSize, string initDiskSize, string initCompType, float initCost, string initLa$
  //*******************************************************************************
  //Purpose: To initialize the data.
  //Input: InitID, initPrcsr, initRAMSize, initDiskSize, initCompType, initCost, initLab.
  //Precondition: initID, initPrcsr, initRAMSize, initDiskSize, initCompType, initCost, initLab  have values.
  //Output: None.
  //PostCondition: Class object is constructed && private data is set to incoming parameters.
  //Note: None.
{
    idNumber = initID;
    processor = initPrcsr;
    RAMSize = initRAMSize;
    DiskSize = initDiskSize;
    computerType = initCompType;
    cost = initCost;
    labLocation = initLab;

  }
  //********************************************************************************

  void ComputerType::SetComputer(int ID, string processorDesc, string RAM, string disk, string type, float compCost, string lab)
  //*******************************************************************************
  //Purpose: To set object data to value for use.
  //Input: ID, processorDesc, RAM, disk, type, compCost.
  //Precondition: ID, processorDesc, RAM, disk, type, compCost, lab have values.
  //Output: None.
  //PostCondition: Object values are set to incoming parameters.
  //Note: None.
  //*******************************************************************************
  {
    idNumber = ID;
    processor = processorDesc;
    RAMSize = RAM;
 DiskSize = disk;
    computerType = type;
    cost = compCost;
    labLocation = lab;
  }
  //********************************************************************************

  void ComputerType::SetComputerType(string& computerTypeConvert)
  //*******************************************************************************
  //Purpose: To set private data computerType to value for use.
  //Input: typeconvert.
  //Precondition: typeConvert has value.
  //Output: None.
  {
    if(computerType == 'd' || computerType == 'D' || computerType == "desktop" || computerType == "Desktop" || computerType == "DESKTOP")
     {
       computerTypeConvert = "Desktop";
     }
    if(computerType == 'l' || computerType == 'L' || computerType == "laptop" || computerType == "Laptop" || computerType == "LAPTOP")
     {
      computerTypeConvert = "Laptop";
     }

    else
     computerTypeConvert = "Invalid input value";

    computerType = computerTypeConvert;
  }
  //*********************************************************************

  string ComputerType::Processorls()
  //******************************************************************************
  //Purpose: Function Processorls returns the computer processor.
  //Input: None.
  //Pre: Object exists.
  //Output: string.
 {
    return processor;
  }
  //******************************************************************************

  string ComputerType::Locationls()
  //******************************************************************************
  //Purpose: Returns the computer.s lab location.
  //Input: None.
  //Pre: Object exists.
 //Post: string labLocation is returned.
  //Note:  None.
  //******************************************************************************
  {
    return labLocation;
  }
  //******************************************************************************

  void ComputerType::ReadRd(ifstream& inFile)
  //******************************************************************************
  //Purpose: Function reads idNumber, processor, RAMSize, DiskSize, computerType, cost, and //labLocation from file, and assigns them to object variab$
  //Input: inFile.
  //Pre: inFile file open and OK.
  //Output: None.
  //Post: idNumber, processor, RAMSize, DiskSize, computerType, cost, and labLocation are stored from //file into object.
  //Note:  None.
  //******************************************************************************

  {
    int RAMSizeInt;
    string RAMSizeString;
    int DiskSizeString;
    string DiskSizeInt;

    inFile >> idNumber >> processor >> RAMSizeInt >> RAMSizeString >> DiskSizeInt >> DiskSizeString >> computerType >> cost >> labLocation;
 RAMSize = RAMSizeInt & RAMSizeString;
    DiskSize = DiskSizeInt & DiskSizeString;
  }
   //******************************************************************************

  void ComputerType::PrintRd(ofstream& outFile)
  //******************************************************************************
  //Purpose: Function PrintRd prints idNumber, processor, RAMSize, DiskSize, computerType, cost and //labLocation to a file.
  //Input: outFile.
  //Pre: OutFile open and ok.
  //Output: float, string.
  //Post: function prints data to outFile.
  //Note:  none.
 {
    outFile << setw(14) << idNumber << setw(25) << processor << setw(15) << RAMSize  << setw(18) << DiskSize;
    outFile << setw(19) << computerType << setw(9) << cost << setw(7) << labLocation << endl;
  }
   //*****************************************************************************

client-code:

 #include "ComputerType.h"
  #include <iostream>
  #include <fstream>
  #include <iomanip>
  #include <cctype>
  #include <string>
  using namespace std;

  int main()
  {
   //declare and open file streams
   ifstream inFile;
   ofstream outFile;

   inFile.open("in.data");
   outFile.open("out.data");
   outFile.setf(ios::fixed);
   outFile.precision(2);

   ComputerType rd;
   string computerTypeConvert;

   computertypeConvert = "type";


 //Check input file
  //if(inFile)
  //{
    //if(outFile)
    //{
     //while(inFile)
    //{
      //function calls for reading and assigning values to private data
      rd.ReadRd(inFile);
      rd.SetComputerType(computerTypeConvert);

      //Print to outFile
      outFile << setw(14) << "ID Number" << setw(25) <<  "P R 0 C E S S O R" << setw(15) << "RAM     Size";
      outFile << setw(18) << "Disk Size" << setw(19) << "Computer Type" << setw(9) << "Cost";
      outFile << setw(7) << "Location" << endl;
      rd.PrintRd(outFile);
    // }
   return 0;
  }

Hier meine Fehlerliste:

 cxx -o runComputerType.out ComputerType.cxx runComputerType.cxx
ComputerType.cxx: In member function âvoid ComputerType::SetComputerType(std::string&)â:
ComputerType.cxx:95: error: no match for âoperator==â in â((ComputerType*)this)->ComputerType::computerType == 'd'â
ComputerType.cxx:95: error: no match for âoperator==â in â((ComputerType*)this)->ComputerType::computerType == 'D'â
ComputerType.cxx:99: error: no match for âoperator==â in â((ComputerType*)this)->ComputerType::computerType == 'l'â
ComputerType.cxx:99: error: no match for âoperator==â in â((ComputerType*)this)->ComputerType::computerType == 'L'â
ComputerType.cxx: In member function âvoid ComputerType::ReadRd(std::ifstream&)â:
ComputerType.cxx:156: error: no match for âoperator in âRAMSizeInt & RAMSizeStringâ
/usr/include/c++/4.3/bits/ios_base.h:81: note: candidates are: std::_Ios_Fmtflags std::operator&(std::_Ios_Fmtflags, std::_Ios_Fmtflags)
/usr/include/c++/4.3/bits/ios_base.h:121: note:                 std::_Ios_Openmode std::operator&(std::_Ios_Openmode, std::_Ios_Openmode)
/usr/include/c++/4.3/bits/ios_base.h:159: note:                 std::_Ios_Iostate std::operator&(std::_Ios_Iostate, std::_Ios_Iostate)
ComputerType.cxx:157: error: no match for âoperator in âDiskSizeInt & DiskSizeStringâ
/usr/include/c++/4.3/bits/ios_base.h:81: note: candidates are: std::_Ios_Fmtflags std::operator&(std::_Ios_Fmtflags, std::_Ios_Fmtflags)
/usr/include/c++/4.3/bits/ios_base.h:121: note:                 std::_Ios_Openmode std::operator&(std::_Ios_Openmode, std::_Ios_Openmode)
/usr/include/c++/4.3/bits/ios_base.h:159: note:                 std::_Ios_Iostate std::operator&(std::_Ios_Iostate, std::_Ios_Iostate)
runComputerType.cxx: In function âint main()â:
runComputerType.cxx:35: error: no matching function for call to âComputerType::ComputerType()â
ComputerType.h:32: note: candidates are: ComputerType::ComputerType(int, std::string, std::string, std::string, std::string, float, std::string)
ComputerType.h:17: note:                 ComputerType::ComputerType(const ComputerType&)
  • In dem Fall, wo Sie testen computerType == 'd' tun Sie vergleichen möchten, und die ganze Reihe oder nur die ersten Zeichen? Sie sollte wohl auch erklären, was Sie erwarten RAMSize = RAMSizeInt & RAMSizeString; zu tun.
  • Ich befestigte den = = - operator Fehler. Danke! RAMSize = RAMSizeInt & RAMSizeString gemeint war eine Verkettung. Ah... das ist dazu gedacht, den ' + ' - operator, ist es nicht?
  • Könnten Sie ostringstream zum durchführen von int zu string-Konvertierung und-Verkettung.
InformationsquelleAutor 5unnyr4y3 | 2014-09-07
Schreibe einen Kommentar