我正在为C ++项目工作,但我想知道如何从析构函数中的类/结构中调用成员函数。我项目的其余部分进展顺利,所以我只需要知道这个就完成了:)
~Drink()
{
cout << "hi";
cout << "I want to know how to summon a member function from a destructor.";
}
int Drink::dailyReport()
{
cout << "This is the member function I want to call from the destructor.";
cout << "How would I call this function from the destructor?"
}
正确的语法,所有人将不胜感激!如何从析构函数中调用成员函数的示例很可爱!
答案 0 :(得分:2)
这里的问题是您没有为析构函数添加前缀Drink::
由于析构函数不知道它应该与哪个类相关联(假设它是在类声明之外定义的),它不知道它甚至有一个成员函数可以调用。
尝试将代码重写为:
Drink::~Drink() // this is where your problem is
{
cout << "hi";
cout << "I want to know how to summon a member function from a destructor.";
dailyReport(); // call the function like this
}
int Drink::dailyReport()
{
cout << "This is the member function I want to call from the destructor.";
cout << "How would I call this function from the destructor?"
}
答案 1 :(得分:0)
类析构函数基本上与任何其他成员函数一样:您可以调用类的成员函数并以相同的方式使用成员变量,除了:
请记住那些析构函数用于清理和(如果您手动处理)资源的释放和动态内存等,所以你可能不应该< em>在析构函数中执行。
如果/当你的类变得足够复杂以使用虚函数时,事情变得有点棘手。
建议:小心不要在析构函数中做任何事情甚至可能抛出异常而不处理它:它可能会引入令人讨厌的,难以发现的错误。< / p>