Re: static vector (c style)
Yes if I add the headers all compile
well... But for me the code it
is too obscure... I'm not so expert
So I post how I would write it
in the way I understand some thing...
#include <stdio.h>
#include <string.h>
#include <iostream.h>
class myVect
{
public:
static char s_vector[50];
char us_vector[50];
static bool trunc;
myVect operator=(char s[])
{int i;
trunc = (((string)s).length() + 1 > sizeof s_vector) ? false : true;
for (i = 0; i < sizeof s_vector; i++)
s_vector[i] = us_vector[i] = s[i];
return *this;
}
};
char myVect::s_vector[50];
bool myVect::trunc;
int main(void)
{
static myVect m1, m2;
m1 = "Mickey Mouse";
m2 = "Donald Duck";
cout << "s: " << m1.s_vector << " us: " << m1.us_vector << endl;
m1 = m2;
cout << "s: " << m1.s_vector << " us: " << m1.us_vector << endl;
system("pause");
return 0;
}
__________________________________
#include <stdio.h>
#include <iostream.h>
char s_vectors[50*50]; // 0..2499
int index=0; /* index 0..49 50 string static
of max 50 chars */
class myVect
{public:
char* s_vector;
int trunc;
char us_vector[50];
myVect()
{s_vector=(char*)s_vectors+(50*index);
if(index>=2449) index = 0;
else index+=50;
}
~myVect(){}
myVect& operator=(char* s)
{int i;
for(i=0; i<49 && s[i]!=0; i++)
{s_vector[i]=s[i]; us_vector[i]=s[i];}
s_vector[i]=0;
us_vector[i]=0;
trunc=(s[i]==0?0:1);
return *this;
}
myVect& operator=(myVect& m)
{int i;
for(i=0; i<50; ++i)
{ s_vector[i]= m.s_vector[i];
us_vector[i]=m.us_vector[i];
}
trunc=m.trunc;
return *this;
}
};
int main(void)
{myVect m1, m2;
m1 = "Mickey Mouse";
m2 = "Donald Duck";
cout<<"s: "<<m1.s_vector<<" us: "<< m1.us_vector<<endl;
m1 = m2;
cout<<"s: "<< m1.s_vector<<" us: "<< m1.us_vector<< endl;
return 0;
}