Labels

Android (1) bash (2) boost (2) C (34) C++ (2) cheatsheet (2) CLion (6) css (3) Debian (33) DL (17) Docker (2) Dreamweaver (2) Eclipse (3) fail2ban (4) git (5) GitHub (4) Hacking (3) html (8) http (1) iOS (1) iPad (1) IRC (1) Java (31) javascript (3) Linux (167) Mac (19) Machine Learning (1) mySQL (48) Netbeans (4) Networking (1) Nexus (1) OpenVMS (6) Oracle (1) Pandas (3) php (16) Postgresql (8) Python (9) raid (1) RedHat (14) Samba (2) Slackware (47) SQL (14) svn (1) tar (1) ThinkPad (1) Virtualbox (3) Visual Basic (1) Visual Studio (1) Windows (2)

Monday, 4 September 2023

C++ Pointers (AGAIN AGAIN) and passing by value or reference.


 

PASSING BY VALUE

// class declaration
class Foo {};
 
void PassByValue(Foo f, int n)
{
// Do something with f and n.
}
  
int main() 
{
Foo foo;
int i = 1;
PassByValue(foo, i);
}

 

PASSING BY POINTER

class Foo 
{
public:
int data[100];
};
 
void PassByPointer(Foo* f, int n)
{
// Do something with *f and n.
}
 
int main()
{
Foo foo;
int i = 0;
PassByPointer(&foo, i);

return 0;
}

 

PASSING BY REFERENCE

class Foo 
{
public:
int data[100];
};
 
void PassByReference(Foo& f, int n)
{
// Do something with f and n.
}
 
int main()
{
Foo foo;
int i = 0;
PassByReference(foo, i);
return 0;
}


[source]



No comments:

Post a Comment

Note: only a member of this blog may post a comment.