拷贝构造函数的实例分析
发布网友
发布时间:2022-04-18 06:10
我来回答
共1个回答
热心网友
时间:2022-04-18 07:39
#include <iostream>
#include <string>
using namespace std;
class CNameList
{
public:
CNameList(void)
{
size = 0;
p = NULL;
}
CNameList(const string [ ], int);
void set(const string& s, int i);
void set(const char* s, int i);
void mp() const;
private:
int size;
string* p;
};
CNameList::CNameList(const string s[], int si)
{
p = new string[size = si];
for (int i=0; i<size; i++)
{
p[i] = s[i];
}
}
void CNameList::set(const string& s, int i)
{
p[ i ] = s;
}
void CNameList::set(const char* s, int i)
{
p[ i ] = s;
}
void CNameList::mp() const
{
for (int i=0; i<size; i++)
cout << p[i] << '\n';
}
int main()
{
string list[] = {"Lab","Zhihua","Song"};
CNameList n1(list, 3);
n1.mp();
CNameList n2 (n1);//调用拷贝构造函数
n2.mp();
n2.set(“Great Dane”, 1);
n2.mp();
n1.mp();
return 0;
}
拷贝构造函数解析
实际上自己可以写个拷贝构造函数
CNameList(CNameList*s)
{
size=s->size;
p=s->p ;
}
不知道你明白了不