创建一个字符串类,实现了相应的构造函数,代码如下:
#include <stdio.h>
#include <stdlib.h>
class MyString
{
private:
char m_string[1024];
public:
//1.无参构造函数
MyString()
{
strcpy(m_string,"无参字符串");
};
//2.有参构造函数
MyString(AnsiString str)
{
strcpy(m_string, str.c_str());
}
//3.对象之间赋值(重载=实现)
MyString & operator = (MyString & str)
{
strcpy(m_string,(char*)str.m_string);
return *this;
}
//4.char*赋值给对象(重载=实现)
char * operator = (const char * str)
{
strcpy(m_string,str);
return m_string ;
}
//5.对象返回字符串
operator char *()
{
return m_string;
}
//6.拷贝构造函数
MyString(MyString & a)
{
strcpy(m_string, a.m_string);
}
//7.字符串转对象(重载构造函数实现)
MyString(char * str)
{
strcpy(m_string,str);
}
};
int main(int argc, char* argv[])
{
//1.无参构造函数
MyString b;
printf("无参构造函数:%s\n",(char*)b);
//2.有参构造函数
MyString a("hello") ;
printf("有参构造函数:%s\n",(char*)a);
//3.对象之间赋值
b = a;
printf("对象之间赋值:%s\n",(char*)b);
//4.字符串赋给对象
b = "123";
printf("=号重载,字符串赋值:%s\n",(char*)b);
//5.对象返回字符串
char * p = b;
printf("对象转字符串:%s\n",p);
//6.拷贝构造函数
MyString s(b);
printf("拷贝构造函数:%s\n",(char*)s);
//7.字符串转对象
MyString e = "大家好";
printf("字符串转对象(重载构造函数实现):%s\n",(char*)e);
getchar();
return 0;
}