我被指出以下文章:
http://www.codeproject.com/Tips/78946/C-Copy-Constructor-in-depth
我们有代码:
class string
{
// constructor
string(char* aStr)
{
str = new char[sizeof(aStr)];
strcpy (str,aStr);
}
// destructor
~string()
{
del str;
}
char *getChars(){ return str; }
char* str;
};
void function (string str)
{
// do something
}
void main ()
{
string str("hello");
function(str);
function(str); // program crashes
}
我不明白为什么在main
,第二次调用会有问题function
?当然,当str
传入第一次调用时,这只是一个副本,str
因此对 inside 所做的任何事情str
都function
不会影响在 ? 中str
声明的变量main
?