Compling errors

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Warren Hoskins
    New Member
    • Feb 2007
    • 5

    #1

    Compling errors

    I'm working on a program, overloading operators, when I compile the program together it works, however when I separate it into the various files such as the .h and the .cpp I'm getting a lot of error messages. Can you offer any suggestions.

    Here's the code:
    Code:
    //#include "complex.h"//implementation file
    #include <iostream>
    //#include<math.h>  
    using namespace std;
    
    class Complex
    {
    	public:
    		Complex(double, double);
    		Complex();
    		Complex(double);   
    		friend ostream& operator <<(ostream& out, const Complex& c);
    		friend istream& operator >>(istream& in, Complex& c);
    		friend const Complex operator *(const Complex& l, const Complex& r);
    		friend const Complex operator -(const Complex& l, const Complex& r);
    		friend const Complex operator +(const Complex& l, const Complex& r);
    		friend bool operator ==(const Complex& l, const Complex& r);
    	private:
    		 double real, imag;
    };
    
    // define constructor
    Complex::Complex( double r, double i )
    {
        real = r; imag = i;
    }
    
    Complex::Complex()
    {
    	real = 0;
    	imag = 0;
    }
    
    Complex::Complex(double realPart ) //constructor that takes a single parameter
    {
    	realPart = 0;
    	int i = 1;
    }
    
    ostream& operator <<(ostream& out, const Complex& c)
    {
    	out << c.real << "+" << c.imag << "i";
    	return out;
    }
    
    istream& operator >>(istream& in, Complex& c)
    {
    	char op;
    	char i;
    	in >> c.real >> op >> c.imag >> i; 
    	
    	return in;
    }
     
    // define overloaded + (plus) operator
    const Complex operator +(const Complex& l, const Complex& r) 
    {
        Complex result;
        result.real = (l.real + r.real);
        result.imag = (l.imag + r.imag);
    	
        return result;
    }
    
    const Complex operator -(const Complex& l, const Complex& r) 
    {
          Complex result;
          result.real = (l.real - r.real);
          result.imag = (l.imag - r.imag);
          return result;
    }
    
    const Complex operator *(const Complex& l, const Complex& r) 
    {
         
          int a = (l.real*r.real - l.imag*r.imag);
          int b = (l.imag*r.real + l.real*r.imag);
    	  Complex result(a,b);
          return result;
    }
    
    bool operator ==(const Complex& l, const Complex& r)
    {
    	return ((l.real == r.real) && (l.imag == r.imag));
    }
    
    
     
    int main()
    { 
    	Complex a(4,5), b(6,5);
    	double realPart = 0;
    	Complex i(0,1);
    	cout << "First complex number is " << a << endl;
    	cout << "Second complex number is " << b << endl << endl;
    	cout << "Testing constant i..."<<endl; 
    	cout << "The value of our constant i is: " << i << endl <<endl;
    	cout << "Enter 2 new complex numbers in the form a+bi(with no spaces):" << endl;
    	cin >> a >> b;
    	cout << endl;
    	
        
    	cout << a << " + " << b <<" = "<< a + b<< endl;
    	cout << a << " - " << b <<" = "<< a - b<< endl;
    	cout << a << " * " << b <<" = "<< a * b<< endl << endl;
    	cout << "Testing equality operator..." << endl;
    	if (a == b)
    		cout << a << " is equal to " << b << endl;
    	else
    		cout << a << " is not equal to " << b << endl;
    	return 0;
    	
    }
    Here are the error messages:


    C:\Documents and Settings\Defaul t\Desktop>cl /EHsc pr3d.cpp
    pr3.cpp
    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version
    13.10.3077 for 80x86
    Copyright (C) Microsoft Corporation 1984-2002. All rights
    reserved.

    pr3d.cpp
    c1xx : fatal error C1083: Cannot open source file:
    'pr3d.cpp': No such file or d
    irectory
    pr3.cpp
    c1xx : fatal error C1083: Cannot open source file:
    'pr3.cpp': No such file or di
    rectory
    Generating Code...

    C:\Documents and Settings\Defaul t\Desktop>cd exP-3\

    C:\Documents and Settings\Defaul t\Desktop\exP-3>cl /EHsc
    pr3d.cpp pr3.cpp
    Microsoft (R) 32-bit C/C++ Optimizing Compiler Version
    13.10.3077 for 80x86
    Copyright (C) Microsoft Corporation 1984-2002. All rights
    reserved.
    Last edited by Ganon11; Mar 14 '07, 09:15 PM. Reason: code tags added
  • DeMan
    Top Contributor
    • Nov 2006
    • 1799

    #2
    Welcome to theScripts,

    I am taking the liberty of moving this thread to the C forum, where I'm sure the experts will be more than willing to offer some advice....

    Comment

    • Ganon11
      Recognized Expert Specialist
      • Oct 2006
      • 3651

      #3
      What is the name of the files you are saving this code in? You may be trying to open a file that doesn't exist.

      Comment

      Working...