智能指针,然并卵

cpp 复制代码
// test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <string>
#include <memory>

#ifndef _SAFE_DELETE
#define _SAFE_DELETE(x) \
	{ \
	if( (x) ) { \
	delete (x); \
	(x) = NULL; \
	} \
	}
#endif

class mysql_result
{
public:
	mysql_result(){
		m_nRows = 0;
	}
	~mysql_result(){
		std::cout << "~mysql_result()\n";
	}
	int m_nRows;		// 结果集行数
};

mysql_result *ptest;

void test()
{
	mysql_result *result = new mysql_result();
	std::shared_ptr<mysql_result> p(result);
	_SAFE_DELETE(result);
}

int main()
{
	
	//mysql_result *result = new mysql_result();
	//mysql_result *test = result;
	//_SAFE_DELETE(result);
	test();
	system("pause");
    std::cout << "Hello World!\n";
}

两个指针指向同一个对象,释放其中一个指针,另外一个就会野指针。当你想引入智能指针解决问题,然并卵,智能指针也是野指针。

相关推荐
方白羽4 小时前
Android APK安全防护
android·安全·apk
小黄人软件4 小时前
AndroidStudio老项目 macOS运行BlueTooth蓝牙串口助手(Android+Studio源码).rar
android·macos
00后程序员张4 小时前
苹果App Store上架指南:费用、原理与步骤详解
android·ios·小程序·https·uni-app·iphone·webview
天神哥哥啊4 小时前
cocos联调注意事项-安卓
android
TDengine (老段)4 小时前
TDengine TSDB 实战排障四(升级与兼容)
android·java·大数据·数据库·物联网·时序数据库·tdengine
蓝速科技5 小时前
政务自助终端信创选型与无人值守落地方案
android·大数据·数据库·人工智能·科技·技术分享·政务
硫酸锌016 小时前
在手机上运行Python增量备份手机数据到PC电脑
android·windows·python
hai_android7 小时前
子 View 被压小时,如何向父容器"告状"?——MEASURED_STATE_TOO_SMALL 向上传递机制
android·kotlin·android jetpack
AFinalStone7 小时前
Android 7 多用户源码解析(七)系统服务的多用户感知处理
android·系统架构·多用户
怪奇云呼军7 小时前
从 ElevenLabs 看工具调用:闪电智能 Voice Agent 的企业集成验收设计
android·大数据·运维·服务器·网络·人工智能·kotlin