代码:
#include <iostream>
using namespace std;
class String
{
char name[256];
public:
String(char* str)
{
cout<<"Constructor" << endl;
strcpy(name,str);
}
String(String &s)
{
cout<< "Copy Constructor"<< endl;
strcpy(name,s.name);
}
String()
{
cout<<"Default Constructor"<<endl;
}
String(){}
String& operator=(const String&s)
{
strcpy(name,s.name);
cout<<"Assign Operator"<<endl;
return *this;
}
void display()
{
cout << "The String is:" << name << endl;
}
};
int main()
{
String mystr1 = "a";//Why does it only print "Constructor"?
String mystr2;
mystr2 = "aa";
String mystr3("aaa");//Here just invoke String::String(char *str).
return 0;
}
为什么不调用字符串的String :: String的定义"mystr1"?编译器如何处理?与mystr1定义