c++ - C++ 你能在构造函数或析构函数中引用 this 指针吗?
问题描述
老实说,这只是一个一般性问题,我没有需要修复的代码。我只是好奇你是否可以this
在构造函数或析构函数中引用指针。
一个小的示例代码也将不胜感激,所以我可以继续。
解决方案
构造函数和析构函数都可以this
像所有其他方法一样访问指针,除非它们是static
, (我的意思是方法)。
例子:
#include <iostream>
class C {
public:
int *a;
C() {
std::cout << "calling constructor\n";
this->a = new int(5);
}
~C() {
std::cout << "\ncalling destructor";
delete this->a;
}
};
int main() {
C c{};
std::cout << *c.a;
}
输出:
calling constructor
5
calling destructor
这是一个简化版本,请注意,当一个类需要用户定义的析构函数时,它很可能还需要用户定义的复制构造函数和用户定义的复制赋值运算符,如规则三中所定义。
推荐阅读
- mysql - MySQL 合并 2 个结果集,不包括第一个中的记录
- php - PHP 是否具有确定与给定 PHP 脚本兼容的最旧 PHP 版本的内置方法?或者永远不会?
- c# - 如何让 WPF 应用程序打开另一个应用程序(如果存在)
- web - Visual Studio ClickOnce Web 部署
- oracle - Oracle Apex 不显示现有架构
- css - CSS translateY 和 ZOOM 导致 div 之间的间隙
- jinja2 - 具有默认值的变量的气流 Jinja 模板
- excel - 使用数组中的值覆盖 Excel 工作表中的范围
- c# - 如何在课堂上触发用户事件?
- python-3.x - 训练损失和准确性以及验证准确性保持不变