类含有指针数据成员的时候,将类的对象作函数参数复制传递时,出错,
main程序代码:
#include<iostream> #include"liuyu.hpp" using namespace std; int main(){ liuyu head; build(head); display(head); return 0; }
当头文件是
程序代码:
#include<iostream> class liuyu{ public: char *elem; int length; }; void build(liuyu head){ const int L=26; head.elem=new char[100]; for(int i=0;i!=L;++i){ head.elem[i]='a'+i;} head.length=L; } void display(liuyu head){ for(int i=0;i!=head.length;++i){ std::cout<<(head.elem[i])<<" "; } }
会出现无限循环的错误,
当头文件为
程序代码:
#include<iostream> class liuyu{ public: char *elem; int length; }; void build(liuyu &head){ const int L=26; head.elem=new char[100]; for(int i=0;i!=L;++i){ head.elem[i]='a'+i;} head.length=L; } void display(liuyu &head){ for(int i=0;i!=head.length;++i){ std::cout<<(head.elem[i])<<" "; } }
函数的形参为引用时,程序运行没错,
类含有指针数据成员的时候,复制类的对象只复制地址,在这里复制地址为什么会出错,