关于传递引用和指针的问题?谢谢

fidelf 2005-03-19 05:24:03
class T
{
private:
char *p;
.....
public:
T(int size=5){ p=new char[5];}
T(const T& rhs){...}
T operator= (const T& rhs) {...}
void f(T& arg);
void g(T* arg);
....
};

void T::f(T& arg)//是否是实参的副本传递给arg,或者是没有实参的副本产生,arg直接指向实参?如果在f函数中重新进行了动态地址的分配,这个地址怎么返回?
void T::g(T* arg)是否和f一样呢?
...全文
88 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kobefly 2005-03-19
  • 打赏
  • 举报
回复
是不是形参为对象的引用或者指针时,被调函数直接对实际的对象进行读写??

是的
传递应用,就是传递的对象本身
传递指针,就是通过指针的值,对指向的东西,直接读写
fidelf 2005-03-19
  • 打赏
  • 举报
回复
是不是形参为对象的引用或者指针时,被调函数直接对实际的对象进行读写??
yuchengliu 2005-03-19
  • 打赏
  • 举报
回复
A *f()
A &f()
fidelf 2005-03-19
  • 打赏
  • 举报
回复
to donypy(51-->ARM)
如果在f函数中重新进行了动态地址的分配,这个地址怎么返回?
=================================
这个看不明白,对什么进行动态地址分配?

比如说,在f中重新定义一个T对象A,并且对A进行相应的操作,这样就要进行地址分配了,这种情况下,如何使在f中分配的地址在程序的运行期间都有效存在?
dongpy 2005-03-19
  • 打赏
  • 举报
回复
如果在f函数中重新进行了动态地址的分配,这个地址怎么返回?
=================================
这个看不明白,对什么进行动态地址分配?
dongpy 2005-03-19
  • 打赏
  • 举报
回复
void T::f(T& arg)//
===================
参数压栈时候是把实参的地址压栈的。
lw1a2 2005-03-19
  • 打赏
  • 举报
回复
指针和引用都是传的地址,没有副本产生

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧