越学c++ ,愈发的觉得java有些肤浅了。拷贝初始化还是比较容易理解的,就不写了,值得注意的是,当类中有指向其他对象的指针成员函数时候,适宜用拷贝初始化。显示的声明拷贝初始化,会防止危险操作,即程序中两个指针指向同一个对象时候,执行析构函数造成释放两次指针变量。
c++ 里面,函数的名称,可以是一个标识符,也可以是一个操作符
一般情况下,当类对象更新类的另外一个对象时候,该成员函数被调用。
以下是类赋值操作成员函数的一般形式:
X& X::operator = (const X& x)
如果程序员没有为类中显示声明这个赋值操作,那么编译器自己为类声明一个赋值操作。
代码:
view plaincopy to clipboardprint?
#include "stdafx.h"
#include <iostream>
//#include <bitset>
using namespace std;
class Person
{
public:
Person(){}
Person(int x){
x = x;
}
Person& operator = (Person& p){
cout<<"aaa";
return *this;
}
void setX(int x ){
x = x;
}
int getX(){
return x;
}
protected:
private:
int x;
};
int main()
{
Person p(2);
Person p1;
p1 = p;
return 0;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lihan6415151528/archive/2009/09/29/4615546.aspx