Problem z konstruktorem (chyba)

0
#include <iostream>
#include <string>
#include <vector>
using namespace std;

class wiersz
{
	private:
		string *p;  //tablica z elementami
		int s;   //rozmiar
		bool o;  //określa, czy liczba elementów w wierszu jest parzysta

		string dodaj(string s1, string s2)
		{
			bool czydodac;
		    char c;
			if (s1.size()>s2.size())
		    {
		        czydodac=false;
				for(int i=s1.size()-1;i>=s1.size()-s2.size();i--)
		        {
					if (czydodac==true) {s1[i]++;czydodac=false;}
		            c=s1[i]+s2[i-s1.size()+s2.size()]-48;
		            if (c>'9') {c-=10;czydodac=true;}
		            s1[i]=c;
		        }
				if (czydodac==true) s1="1"+s1;

		        return(s1);
		    }
		    else if (s1.size()<s2.size())
			{
		        czydodac=false;
		        for(int i=s2.size()-1;i>=s2.size()-s1.size();i--)
		        {
		            if (czydodac==true) {s1[i]++;czydodac=false;}
					c=s2[i]+s1[i-s2.size()+s1.size()]-48;
		            if (c>'9') {c-=10;czydodac=true;}
		            s2[i]=c;
		        }
		        if (czydodac==true) s2="1"+s2;

		        return(s2);
		    }
		    else
		    {
				czydodac=false;
		        for(int i=s1.size()-1;i>=0;i--)
		        {
		            if (czydodac==true) {s1[i]++;czydodac=false;}
		            c=s1[i]+s2[i]-48;
					if (c>'9') {c-=10;czydodac=true;}
		            s1[i]=c;
		        }
		        if (czydodac==true) s1="1"+s1;

				return(s1);
		    }
		}
	public:

		wiersz()
		{
			o=false;
			s=1;
			p=new string [1];
			p[0]="1";
		}

		wiersz(wiersz &q)
		{
			int y=q.size();
			if(q.o==true)
			{
				o=false;
				s=y+1;
				p=new string [s];
				p[0]="1";
				for(int i=0;i<y-1;i++)
				{
					p[i+1]=dodaj(q.p[i], q.p[i+1]);
				}
				p[y]=dodaj(q.p[y-1], q.p[y-1]);
			}
			else
			{
				o=true;
				s=y;
				p=new string [s];
				p[0]="1";
				for(int i=0;i<y-1;i++)
				{
					p[i+1]=dodaj(q.p[i], q.p[i+1]);
				}
			}
		}

		~wiersz(){delete [] p;}
		const int size() const {return(s);}
		void print() const
		{
			int i, l=0;
			for(int i=l;i<s;i++) cout<<p[i]<<"   ";
			if(o==true) l=s-1; else l=s-2;
			for(i=l;i>=0;i--) cout<<p[i]<<"   ";
			cout<<'\n';
		}
};

int main()
{
	int count = 1;
	vector <wiersz> tab;
	wiersz w;
	tab.push_back(w);


	tab.clear();
	return(0);
}

Jak to zrobić, cobym mógł dodać element do wektora?

0

Konstruktor kopiujący deklaruje się wiersz( const wierszy& other ), a nie wiersz( wiersz& other ).

0

Też nie działa....

1 użytkowników online, w tym zalogowanych: 0, gości: 1