C++编程入门(二) 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

对象指针

对象与一般变量一样,只不过对象的类型是程序员自己定义的,而变量的类型是C++给出的。当然可以用指针指向对象咯,叫做对象指针。对象指针常用作函数参数,这跟普通指针用于函数参数的目的是一样的,可以改变参数的值。

对象引用

老师刚刚说过,对象与一般变量一样,所以也可以给对象起一个别名,叫做对象引用。对象引用也常作为函数参数,跟对象指针作用一样,可以改变参数的值,但其机理不一样。这个我们之前学习过,所以不再赘述。

this指针

在类的每个成员函数中都隐藏了一个特殊的指针:this指针。当一个对象调用其成员函数是,系统先将该对象的地址赋值给this指针。也就是说在成员函数中,可以通过this指针获取到对象的地址。

#include <iostream>
using namespace std;
class L
{
    public:
        L(int x){a=x;}
        void incr(int y){a+=y;}
        void Print(){cout<<"a= "<<a<<endl;}
    private:
        int a;
};
void func(L *a1,L &a2)
{
    a1->incr(4);
    a2.incr(4);
}
void main()
{
    L l1(1),l2(2);
    func(&l1,l2);
    l1.Print();
    l2.Print();
}

第12到16行定义函数func,有两个参数分别是对象指针和对象引用,函数的功能是将两个对象的数据成员a的值分别加4。输出结果为:

a= 5

a= 6

在右侧代码框中编写程序:根据上述例子,写一个类A,只有数据成员a。再写一个函数func,参数为两个指向类A对象的指针,比较两个对象的a值,返回指向a值最大的对象的指针。