如果两个对象是同一种类型的,那么可以用其中一个给另外一个赋值。默认情况下,当一个对象被赋值给另一个对象时,第一个对象的数据被按位复制到第二个对象中。
示例程序:
[C++] 纯文本查看 复制代码
#include <iostream>
using namespace std;
class myclass {
int a;
int b;
public:
void setab(int i, int j) { a = i, b = j; }
void showab();
};
void myclass::showab()
{
cout << "a is " << a << "\n";
cout << "b is " << b << "\n";
}
int main()
{
myclass ob1, ob2;
ob1.setab(10, 20);
ob2.setab(30, 40);
cout << "ob1 before assignment: \n";
ob1.showab();
cout << "ob2 before assignment: \n";
ob2.showab();
ob2 = ob1; //将对象ob1的值赋给ob2
cout << "ob2 after assignment: \n";
ob2.showab();
return 0;
}
运行输出:
$ ./copyobj
ob1 before assignment:
a is 10
b is 20
ob2 before assignment:
a is 30
b is 40
ob2 after assignment:
a is 10
b is 20
默认情况下,赋值操作只是创建了一个完全相同的副本。但是需要注意的是,对象的赋值仅仅是使这些对象的值相等,但两个对象仍然是互相独立的。也就是说,修改一个对象中的值不会影响大另外一个对象。 |