类中对象的定义及访问
1.在声明类的同时,直接定义对象,访问一般使用对象名.数据成员名:
#include <iostream>
using namespace std;
class Point {
public:
void setpoint(int a, int b);
int getx();
int gety();
private:
int x, y;
}op1,op2; //在此处直接定义对象
void Point::setpoint(int a,int b)
{
x = a;
y = b;
}
int Point::getx()
{
return x;
}
int Point::gety()
{
return y;
}
int main()
{
op1.setpoint(1, 2); //进行访问
op2.setpoint(3, 4);
cout << op1.getx()<<endl;
cout << op2.gety()<<endl;
return 0;
}
2.在使用时才定义对象:
#include <iostream>
using namespace std;
class Point {
public:
void setpoint(int a, int b);
int getx();
int gety();
private:
int x, y;
};
void Point::setpoint(int a,int b)
{
x = a;
y = b;
}
int Point::getx()
{
return x;
}
int Point::gety()
{
return y;
}
int main()
{
Point op1, op2; //在使用时才定义对象
op1.setpoint(1, 2);
op2.setpoint(3, 4);
cout << op1.getx()<<endl;
cout << op2.gety()<<endl;
return 0;
}
3.访问对象中的成员也可以通过指向对象的指针,此时不使用“.”而使用“->”:
int main()
{
Point *op,d;
op = &d;
op->setpoint(1, 2);
cout << op->getx();
return 0;
}
int main()
{
Point *op,d;
op = &d;
(*op).setpoint(1, 2);
cout << (*op).getx();
return 0;
}
4.访问对象中的成员也可以通过引用的方式:
int main()
{
Point d1;
Point &d2 = d1;
d1.setpoint(1, 2);
cout << d1.getx() << endl;
cout << d2.gety() << endl;
return 0;
}
d2时d1的引用,此时d2与d1占有相同的储存单元。