假设我在另一个班级Inner
中有一个班级Outer
:
class Inner
{
public:
Inner();
~Inner();
};
class Outer
{
public:
Outer();
~Outer();
private:
Inner in;
};
现在在main中说我声明了一个Outer类型的对象:
int main()
{
Outer out;
return 0;
}
对象out
有in
个实例作为成员。如果我调用out
的析构函数,它会依次调用in
的析构函数吗?如果没有,我如何实现类Outer
的析构函数来成功调用类Inner
的析构函数?
例如,如果我有一个用户应用程序,并且每个用户都有个人资料,那么当用户的帐户被删除时,如何删除,用户的个人资料呢?
答案 0 :(得分:2)
当你的out
实例class Outer
超出范围时,首先发生的事情是它的所有成员(它们也刚刚超出范围)都会调用它们的析构函数。然后调用<form method="post">
<div class="form-group">
<label for="name">Your Name:</label>
<input type="text" name="name" class="form-control" placeholder="Your Name"
value="<?php echo $_SESSION['post-data']['name']; ?>" />
</div>
<div class="form-group">
<label for="email">Your Email:</label>
<input type="email" name="email" class="form-control" placeholder="Your Email"
value="<?php echo $_SESSION['post-data']['email']; ?>" />
</div>
<div class="form-group">
<label for="comment">Your Comment:</label>
<textarea class="form-control" name="comment"><?php echo $_SESSION['post-data']['comment']; ?></textarea>
</div>
<div class="modal-footer">
<input type="submit" name="submit" class="btn" value="Submit"/>
</div>
</form>
的析构函数。 C ++标准保证了这一点,因此这种行为是由C ++编译器自动生成的。