Here you are only assigning the adress of x into name. And at the adress of x is the 'm' of "missak".
yup::yup(char *x)
{
name = x;
}
Here the content of the adress "name" is printed. And the content is a single char. It's the letter 'm'.
void yup::print()
{
cout<<*name;
cout<<endl;
}
You have to copy the whole string into your private member.
In C you could do this like this e.g.
char szName[BUFF_SIZE];
void yup(const char *x)
{
if( strlen(x) < BUFF_SIZE )
{
strcpy(szName, x);
}
}
In C++ there is also a class for strings. I don't have a good reference right here at the moment. But a little google or search on CodeProject will help you..