关于析构函数的一个小问题……

z1058017535 2012-03-01 11:23:58
class Apple{
int i;
public:
Apple(int n):i(n){}
~Apple(){
cout << "Apple No." << i << " destructed" << endl;
}
};

析构函数不带任何参数,他是如何将参数传递给变量i的
...全文
142 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
轻机枪 2012-03-03
  • 打赏
  • 举报
回复
class A{
static void call(void){}
void fun(void){}
}a;
A::call();//静态void成员函数才是无参数。
a.fun();//普通void成员函数是单参数,this指针隐式传递。
oldm4n 2012-03-02
  • 打赏
  • 举报
回复
访问,是的
输出,未必
[Quote=引用 2 楼 z1058017535 的回复:]

引用 1 楼 justkk 的回复:

不是析构函数传给变量i,而是他访问成员变量i,获取i的值

怎么访问 具体点吧 是不是对象中每个变量都可以通过这样访问,输出
[/Quote]
z1058017535 2012-03-02
  • 打赏
  • 举报
回复
那this指针和构造函数有关系吗
letmegocc 2012-03-02
  • 打赏
  • 举报
回复
正解。
[Quote=引用 6 楼 rabbitlbj 的回复:]
通过隐藏的this指针,析构函数时成员函数,编译器给所有成员函数都传递了一个隐藏的this指针作为参数,这个指针指向自己,当然可以访问自身的成员,
楼主可以这样写
~Apple(){
cout << "Apple No." << this->i << " destructed" << endl;
[/Quote]
RabbitLBJ 2012-03-02
  • 打赏
  • 举报
回复
通过隐藏的this指针,析构函数时成员函数,编译器给所有成员函数都传递了一个隐藏的this指针作为参数,这个指针指向自己,当然可以访问自身的成员,
楼主可以这样写
~Apple(){
cout << "Apple No." << this->i << " destructed" << endl;
justkk 2012-03-01
  • 打赏
  • 举报
回复
输出成员变量i的值。。
z1058017535 2012-03-01
  • 打赏
  • 举报
回复
在这个过程里析构函数到底干嘛了啊
z1058017535 2012-03-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justkk 的回复:]

不是析构函数传给变量i,而是他访问成员变量i,获取i的值
[/Quote]
怎么访问 具体点吧 是不是对象中每个变量都可以通过这样访问,输出
justkk 2012-03-01
  • 打赏
  • 举报
回复
不是析构函数传给变量i,而是他访问成员变量i,获取i的值

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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