user-0 提问: std::auto_ptr的问题

回复:
user: user-1
content: 引用 5 楼 ysmz4 的回复:[quote=引用 3 楼 derekrose 的回复:] [quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 函数的new object 和 std::auto_ptr<object>是什么关系？std::auto_ptr<object>到底是什么类型？ 模板类我不太懂[/quote] return的东西会复制初始化为返回值。自己找构造函数去。

user: user-2
content: 这是一个函数定义，实现上就是New一个对象出来，编译器会隐式的传给auto_ptr构造函数。

user: user-3
content: 引用 12 楼 jiandingzhe 的回复:[quote=引用 3 楼 derekrose 的回复:] [quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 能这么写吗？返回对象的类型和声明的返回类型不一致啊[/quote]  sure

user: user-4
content: 引用 3 楼 derekrose 的回复:[quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 能这么写吗？返回对象的类型和声明的返回类型不一致啊

user: user-5
content: 引用 8 楼 ysmz4 的回复:[quote=引用 6 楼 a345485527 的回复:] [quote=引用 5 楼 ysmz4 的回复:] [quote=引用 3 楼 derekrose 的回复:] [quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 函数的new object 和 std::auto_ptr<object>是什么关系？std::auto_ptr<object>到底是什么类型？ 模板类我不太懂[/quote]  std::auto_ptr<***>是标准库提供的智能指针，***是你要存放的类型。 这个指针时管理资源用的，可以是我们new之后不必调用delete 具体可以参考effective c++[/quote] std::auto_ptr<object> sourse(){     return new object; }难道说std::auto_ptr<object>和object类型是等同的吗[/quote] 不是，它是对指向object的指针的封装，一种RAII机制 读一下《effective c++》第三版，条款13，20分钟就能理解

user: user-0
content: 引用 6 楼 a345485527 的回复:[quote=引用 5 楼 ysmz4 的回复:] [quote=引用 3 楼 derekrose 的回复:] [quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 函数的new object 和 std::auto_ptr<object>是什么关系？std::auto_ptr<object>到底是什么类型？ 模板类我不太懂[/quote]  std::auto_ptr<***>是标准库提供的智能指针，***是你要存放的类型。 这个指针时管理资源用的，可以是我们new之后不必调用delete 具体可以参考effective c++[/quote] std::auto_ptr<object> sourse(){     return new object; }难道说std::auto_ptr<object>和object类型是等同的吗

user: user-3
content: 引用 5 楼 ysmz4 的回复:[quote=引用 3 楼 derekrose 的回复:] [quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 函数的new object 和 std::auto_ptr<object>是什么关系？std::auto_ptr<object>到底是什么类型？ 模板类我不太懂[/quote]  去找一找auto_ptr的例子看看吧

user: user-5
content: 引用 5 楼 ysmz4 的回复:[quote=引用 3 楼 derekrose 的回复:] [quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 函数的new object 和 std::auto_ptr<object>是什么关系？std::auto_ptr<object>到底是什么类型？ 模板类我不太懂[/quote]  std::auto_ptr<***>是标准库提供的智能指针，***是你要存放的类型。 这个指针时管理资源用的，可以是我们new之后不必调用delete 具体可以参考effective c++

user: user-0
content: 引用 3 楼 derekrose 的回复:[quote=引用 2 楼 ysmz4 的回复:] [quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; } [/quote] 函数的new object 和 std::auto_ptr<object>是什么关系？std::auto_ptr<object>到底是什么类型？ 模板类我不太懂

user: user-6
content: 引用 3 楼 derekrose 的回复:不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; }  +1  楼主眼花了

user: user-3
content: 引用 2 楼 ysmz4 的回复:[quote=引用 1 楼 derekrose 的回复:] 你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）[/quote] 不，这是一个函数的实现，你再好好看看  std::auto_ptr<object> sourse(){     return new object; }

user: user-0
content: 引用 1 楼 derekrose 的回复:你具体哪里不懂 我感觉说的挺清楚的 std::auto_ptr<object>sourse(){return new object;} 我理解是：类（智能指针）std::auto_ptr包含了类object，后面sourse(){return new object;}不知道什么意思 又比如std::auto_ptr<object>p (new object);就是名字叫p的auto_ptr包含了object，并且创建了空间（未初始化）

user: user-3
content: 你具体哪里不懂 我感觉说的挺清楚的