各位大侠,这个构造函数MyString(MyString &cp)的有关问题在哪

各位大侠,这个构造函数MyString(MyString &cp)的问题在哪?
MyString:: MyString(MyString &cp)
{
MyString(cp.c_str());
}

上面的构造函数的问题在哪?小弟找了想了很久也没找出答案。本想写个MyString类练习操作符重载的,可是测试时卡在这个构造函数了,其它代码倒是测试没问题,下面是截取的部分代码:


#include<iostream>
using namespace std;

class MyString
{
public:
MyString():_size(1),str(NULL){};
    MyString(char *str);
MyString(MyString &cp);
char *c_str(){return str;}
~MyString(){ delete [] str;}
private:
int _size;
char *str;
static int length(char *str);
static void copy(char *&des,char *source);


};


 //计算字符串的个数,不包括'\0';
int MyString::length(char *str)
 {
 int count=0;
 while(str[count++]);
 return count-1;
 }

//复制字符串
void MyString::copy(char *&des,char *source)
{
int len=length(source);
des=new char[len+1];
int index=0;
while(source[index])
{
des[index]=source[index];
index++;

}
des[index]='\0';

}

MyString::MyString(char *str)
{
if(str)
{
int len=length(str);
_size=len;
copy(this->str,str);

        }
else
{
_size=0;
this->str=NULL;
}
}


MyString:: MyString(MyString &cp)
{
MyString(cp.c_str());
}


构造函数 MyString类 求助 

------解决方案--------------------
如果你用的不是c++0x的编译器的话,构造函数不能调用其它构造函数。
事实上,任何函数都不能直接调用一个类的构造函数,构造函数只能在创建对象时调用,或用placement new操作符调用。
------解决方案--------------------
如楼上所言, 构造函数不能调用其它构造函数
写一个 Init 函数, 然后在不同的构造函数中来调用 Init 进行初始化吧.
------解决方案--------------------
http://baike.baidu.com/view/411124.htm