Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > работает в visual studio.....


Автор: Zakary 1.5.2009, 10:41
почему не покпилится в unix данный код?

Цитата


integerset.h:13: error: ISO C++ forbids declaration of âostreamâ with no type
integerset.h:13: error: âostreamâ is neither function nor member function; cannot be declared friend
integerset.h:13: error: expected â;â before â&â token



Код


.h
class integerset
{
public:
    integerset();
    integerset *unionOfSets(const integerset& ) const;
    integerset *intersectionOfSets(const integerset&) const;
    void insertElement();
    void deleteElement();
    void setArray(int, int);
    void deleteElement(int);
    void printSet() const;
    bool isEqualTo(const integerset& ) const;
private:
        int integerSet[101];
    };

integerset.cpp
#include <iostream>
using namespace std;
#include "integerset.h"

integerset::integerset()
{
for(int i=0;i<101;i++)
    integerSet[i]=0;
}

void integerset::insertElement()
{
    int arrayFig;
    int i;
    cout<<"Enter numbers to insert in array(999 to stop): "<<endl;
    for(int p=0;p<101||i!=999;p++)
    {
    cin>>i;
    if (i==999)
        break;
    if(i<0||i>100)
    {
        cout<<"wrong number! Please Enter numbers from 0 to 100"<<endl;
    }
    else
    {
    arrayFig=1;
    setArray(arrayFig, i);
    }
    }
}
void integerset::deleteElement()
{
    int arrayFig;
    int i;
    cout<<"Enter numbers to delete from array(999 to stop): "<<endl;
    for(int p=0;p<101||i!=999;p++)
    {
    cin>>i;
    if (i==999)
        break;
    if(i<0||i>100)
    {
        cout<<"wrong number! Please Enter numbers from 0 to 100"<<endl;
    }
    else
    {
    arrayFig=0;
    setArray(arrayFig, i);
    }
    }
}
void integerset::setArray(int a, int b)
{
    integerSet[b]=a;
}
integerset *integerset::unionOfSets(const integerset& integer) const
{
    integerset *p=new integerset();
    for (int i=0;i<101;i++)
    {
        if (integer.integerSet[i]==1||integerSet[i]==1)
            p->integerSet[i]=1;
        else 
            p->integerSet[i]=0;
    }
    return p;
}
integerset *integerset::intersectionOfSets(const integerset& integer) const
{
    integerset *p=new integerset();
    for (int i=0;i<101;i++)
    {
        if (integer.integerSet[i]==0||integerSet[i]==0)
            p->integerSet[i]=0;
        else 
            p->integerSet[i]=1;
    }
    return p;
}
 void integerset::printSet()const
{
    int count=0;
    for (int i=0;i<101;i++)
    {
        if (integerSet[i]==1)
            cout<<i<<" ";
        else
            count++;
        if (count==100)
            cout<<"---"<<endl;
    }
    cout<<endl;
}

bool integerset::isEqualTo(const integerset& integer) const
{
    int count=0;
    for(int i=0;i<101;i++)
    {
        if (integer.integerSet[i]!=integerSet[i])
        {
            cout<<"sets are not equal!";
            return 1;
        }
    }
    cout<<"sets are equal!";
            return 0;
}

test.cpp
#include <iostream>
using namespace std;
#include "integerset.h"
int main()
{
    integerset a, b;
    a.insertElement();
    cout<<"Elements is object a after insertElement(): "<<endl;
    a.printSet();
    a.deleteElement();
    cout<<"Elements is object a after deleteElement(): "<<endl;
    a.printSet();
    b.insertElement();
    b.printSet();
    integerset *setunion = a.unionOfSets(b);
    integerset *setinersection=a.intersectionOfSets(b);

    a.isEqualTo(b);
return 0;

 


Автор: bsa 1.5.2009, 18:51
Zakary, перепиши строки: 
#include <iostream> - похоже, там символы <> имеют кривую кодировку

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)