请教这样子创建临时对象有什么有关问题

请问这样子创建临时对象有什么问题?为什么会出现//error: no matching function for call to Internet::I

请问这样子创建临时对象有什么问题?
为什么会出现
//error: no matching function for call to 'Internet::Internet(Internet)'|

C/C++ code
#include <cstring>#include <iostream>using namespace std;class Internet{public:     Internet(char *name,char *address)     {        cout<<"载入构造函数"<<endl;         strcpy(Internet::name,name);     }     Internet(Internet &temp)     {        cout<<"载入COPY构造函数"<<endl;         strcpy(Internet::name,temp.name);        cin.get();     }     ~Internet()     {        cout<<"载入析构函数!";     }public:    char name[20];    char address[20];};int main(){     Internet a=Internet("中国软件开发实验室","www.cndev-lab.com");//error: no matching function for call to 'Internet::Internet(Internet)'|    cout<<a.name;    cin.get();    return 0;}


[解决办法]
探讨
引用:

Internet(const Internet &amp;amp;temp)


请问为什么这样改了就没有错误了呢?