初学者c++类对象引用,基础问题。求高手 class A……… A a1; A* a2=new A(); a2是指向某个A对象的引用。 那么a1是什么,他为什么不能用cout 输出
a1就是个符号啊,他怎么会是对象。。。
追答对啊, 就是个符号, 就想 某人的名字, 名字只是个文字而已,
追问对啊,那么他就是个对象的代号啊。他也是个引用啊
追答理解这些不能总是联想人类语言, 这是编程语言, 是告诉编译器, A a1 是告诉编译器 我现在定义一个A类型的 对象变量, 名叫 a1. A * a2 是告诉编译器 我现在定义一个指针,这个指针指向 A类型的对象.
A &a3 是告诉编译器 我现在定一个引用, 引用名字是 a3 指向的是 A类型的对象.
cout 不能输出是因为, cout 也是一个对象, << 是符号, cout 对象 没有定义cout<<(A类型) 的算法.
所以编译器不知道怎么做, 就报错了, 如果, 你定义一个 cout<<A 这种 运算符重载 那就不会报错.
但我看来你是初学者, 还是先放着,到了学重载运算符那阶段你就会明白当时为什么会报错了.