柯嘉 2004年12月22日
关于类前置声名和对象整体作为函数参数传递
请参考机械工业出版社那本《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)后,依然编译、运行良好。这么做会引起内存泄漏吗?作者的意思是什么呀?
...全文
128 点赞 收藏 22
写回复
22 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告