我们知道我们可以通过 const 引用将临时对象传递给函数,如下所示:
class A
{
public:
A(int _b = 0)
{
b = _b;
}
int b;
};
void foo(A& a) {printf("%d", a.b);}
void cfoo(const A& a) {printf("%d", a.b);}
int main(void)
{
//foo(A(4)); doesn't compile
cfoo(A(5));
}
但是通过指针传递呢?为什么编译?
void pfoo(A* pa) {pa->b = 19;}
int main(void)
{
pfoo(&A(5));
}