智能指针,然并卵

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";
}

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

相关推荐
Ehtan_Zheng35 分钟前
Jetpack Compose 动画转换编排的艺术
android
Ehtan_Zheng1 小时前
Jetpack Compose 动画入门:轻松掌握状态驱动的动画转换
android
Ehtan_Zheng1 小时前
Jetpack Compose 布局与可见性动画
android
_李小白2 小时前
【android opencv学习笔记】Day 12: HSV 色彩空间
android·opencv·学习
千里马学框架2 小时前
手机大厂Activity嵌套模式及三分屏SplitScreen功能调研报告-独家干货
android·智能手机·分屏·aaos·安卓framework开发·车机·三分屏
Mr.QingBin2 小时前
SystemUI插件开发指南
android
芋只因2 小时前
MySQL 分库分表与 MyCat 的使用
android
Ehtan_Zheng2 小时前
Jetpack Compose 与 RecyclerView 混合布局的性能债
android
Kapaseker3 小时前
MVVM 旧城改造,边界划分各有招
android·kotlin
字节高级特工3 小时前
MySQL数据库基础与实战指南
数据库·c++·人工智能·后端·mysql·adb