rust example of lifetime event handling
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/**
|
||||
* In terms of C++, rust lack of constuctor ... as alternative there is Default traits to
|
||||
* initilize object with some default values
|
||||
* bash-3.2$ rustc -A unused_variables lifetime.rs
|
||||
*
|
||||
* bash-3.2$ ./lifetime
|
||||
main started
|
||||
scope started
|
||||
B(0x7fff571df328)::drop
|
||||
scope ended
|
||||
main ended
|
||||
B(0x7fff571df3a0)::drop
|
||||
B(0x7fff571df3a8)::drop
|
||||
*/
|
||||
|
||||
struct A;
|
||||
|
||||
struct B;
|
||||
|
||||
|
||||
impl Drop for B {
|
||||
fn drop(&mut self) {
|
||||
println! ("B({:p})::drop", self);
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
println!("main started");
|
||||
let x = A;
|
||||
let a = B;
|
||||
let b = B;
|
||||
println!("x:{:p}, a:{:p}, b:{:p}", &x, &a, &b);
|
||||
println!("scope started");
|
||||
{
|
||||
let c = B;
|
||||
println!("c:{:p}", &c);
|
||||
}
|
||||
println!("scope ended");
|
||||
println!("main ended");
|
||||
}
|
||||
Reference in New Issue
Block a user