在C++中,我定义了一个类A,再用这个类定义 “A& a;”这个和A a的区别是什么?

1、描述问题:

在C++中,我定义了一个类A,再用这个类定义 “A& a;”这个和A a的区别是什么?

A&是什么类型?是类的引用吗?有什么作用呢?

#include <iostream>
#include <cstdio>

using namespace std;

class A {
public:
    void print() {
        //virtual void print(){
        cout << "A" << endl;
    }
};
class B :public A {
public:
    void print() {
        cout << "B" << endl;
    }
};

int main() {

    B b;
    A& a = b; //A&  是什么类型?是类的引用吗?有什么作用呢?
    a.print();

    return 0;
}

A& 是类A的引用类型
作用:提高程序的安全性,而且不会分配空间。