rust(53)-智能指针

1、值默认分配到栈内存,通过Box装箱,在堆内存中分配
2、Box是向类型为T的堆内存分配值的智能指针。
3、Box超过作用域,将调用其析构函数 ,删除 其内部 对象 ,自动 释放堆中的内存。
4、可通过 解引用符获取Box中的
5、Box行为像引用,可自动释放。

fn main() {
	struct BookInfo{
		name:&'static str,
		price:f32,
		count:i32,
	}
	impl BookInfo{
	    fn print_book_info(&self){
	        println!("{}:{} {}",self.name,self.count,self.price); 
	    }		
	}
	let book1=Box::new(BookInfo{name:"C++模式",price:39.12,count:7});
    let unboxed_book:BookInfo=*book1;
    unboxed_book.print_book_info();

}
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
     Running `F:\learn\rustlearn\learn50\target\debug\learn50.exe`
C++模式:7 39.12


------------------
(program exited with code: 0)

请按任意键继续. . .
发布了473 篇原创文章 · 获赞 14 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/AI_LX/article/details/105099360