标题:学习对象
关键词:对象
内容:
对象的指针即引用事例
#include <iostream>
class B
{
int a,b;
public:
void set(int t1,int t2)
{a=t1;
b=t2;
}
void print()
{
std::cout<<a<<'\t'<<b<<std::endl;
}//这里的set和print就是B的对象
};
int main()
{
B b1;
B &b2=b1;//定义对象b1的引用b2
B *pb;//定义指向类B的对象的指针pb
b1.set(5,10);//输出的就是 5 10
b1.print();
b2.print();//b2作为指针,它是指向b1的所以这里输出的还是 5 10
pb=newB;//pb指向生成的类B的动态对象
pb->set(20,40);
(*pb).print();
delete pb;//输出动态对象 这时输出的就是 20 40
}
对象的赋值
如果对一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值,或者说,一个对象的值可以赋给另一个同类的对象。这里所指的对象的值是指对象中所有数据成员的值。对象之间的赋值也是通过赋值运算符"="进行的。实际上这个过程是通过成员复制来完成的,即将一个对象的成员值一一复制给另一对象的对应成员。
对象赋值的一般形式为:对象名1=对象名2;
注意:对象名l和对象名2必须属于同一个类。
例如
Student studl,stud2;//定义两个同类的对象
stud2=studl;//将studl各数据成员的值赋给stud2
例子
#include<iostream>
class C{
int a,b,c;
public:
void set(int t1,int t2,int t3)
{
a=t1;
b=t2;
c=t3;
}
void print()
{std::cout<<a<<'\t'<<b<<'\t'<<c<<std::endl;
}
};
int main()
{
C c1,c2;
c1.set(1,2,3);
c2.set(0,0,0);
std::cout<<"赋值前:\n";
c1.print();//输出为1 2 3
c2.print();//输出为0 0 0
c2=c1;//将c1的值付给c2
std::cout<<"赋值后:\n";
c1.print();//输出为1 2 3
c2.print();//输出为1 2 3
}