Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Object lifetime
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Examples== ===C++=== A [[C++]] class can be declared with defaults as: <syntaxhighlight lang="cpp"> class Foo {}; </syntaxhighlight> When declared in an automatic context, the object is destroyed at the close of the block it is declared. <syntaxhighlight lang="cpp"> int bar() { Foo foo; // foo is destroyed here } </syntaxhighlight> When created dynamically, it lives until it is explicitly destroyed. <syntaxhighlight lang="cpp"> int bar() { Foo *pFoo = new Foo(); delete pFoo; } </syntaxhighlight> ===Java=== A [[Java (programming language)|Java]] class can be declared with defaults as: <syntaxhighlight lang="java"> class Foo {} </syntaxhighlight> After an instance is created (i.e. <code>new Foo()</code>) it lives until it has no references and the garbage collector deletes it. ===Rust=== {{Further|Rust (programming language)#Lifetimes}} [[Rust (programming language)|Rust]] uses lifetime annotations to declare the lifetime of arguments passed into a function. The lifetime is declared in the function signature within angle brackets. In this example a reference to the struct {{Mono|File}} is passed into the {{Mono|example}} function with the lifetime annotation {{Mono|'a}}. <syntaxhighlight lang="rust"> fn example<'a>(file: &'a File) { // ... } </syntaxhighlight>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)