拷贝赋值函数
class
vector
{
int
sz;
double
* elem;
void
copy(
const
vector
& arg);
public
:
vector
& operator=(
const
vector
&a);
vector(
const
vector
&arg);
vector(
int
s
):sz(
s
),elem(
new
double
[
s
])
{
for
(
int
i=0;i<sz;i++){elem[i]=0;}
}
~vector(){
delete
[] elem;}
int
size()
const
{
return
sz;}
double
get(
int
n
){
return
elem[
n
];}
void
set(
int
n
,
double
v
){elem[
n
]=
v
;}
};
void
vector
::copy(
const
vector
&
arg
)
{
for
(
int
i=0;i<
arg
.sz;++i)
elem[i]=
arg
.elem[i];
}
vector
::vector(
const
vector
&
arg
):sz(
arg
.sz),elem(
new
double
[
arg
.sz])
{
copy(
arg
);
}
vector
&
vector
::operator=(
const
vector
&
a
)
{
double
* p=
new
double
[
a
.sz];
for
(
int
i=0;i<
a
.sz;++i)p[i]=
a
.elem[i];
delete
[] elem;
elem=p;
sz=
a
.sz;
return
*
this
;
}
拷贝赋值,也就是对“
=
”进行重写
(拷贝同一类型的对象)
转载于:https://blog.51cto.com/jun0213/1031822