关于类前置声名和对象整体作为函数参数传递
柯嘉 2004-12-22 12:08:43 请参考机械工业出版社那本《Thinking in c++》第二版第271页最后一段。
class X;
void fun(X*);
class X
{
public:
int m;
friend void fun(X*);
};
int main()
.
.
.
全局函数fun引用了类型X作为参数,因此必须在fun之前声名X,但在声名X之后、定义X之前,没人知道X的size,因此对X的引用只能使用其地址;如果要将X类型的对象整个作为函数参数传递(即fun(X)),则必须在引用前完整的定义类型X。
但我将fun(X*)改为fun(X)后,依然编译、运行良好。这么做会引起内存泄漏吗?作者的意思是什么呀?