new function c++ code example
Example 1: How to make a function in C++
//first lets create a function
/*void is for starting something, anything after void will be the name of your
function which will be followed by () */
void yourFunction() {
//your code will be here, anything here will be the code in the yourFunction
cout << "Functions"
}
//now we have to go to our main function, the only function the compiler reads
int main() {
myFunction(); //you call the function, the code we put in it earlier will be executed
return 0;
}
Example 2: function in c++
#include <iostream>
using namespace std;
void function(){
cout << "I am a function!" << endl;
}
int main()
{
function();
return 0;
}
Example 3: new in c++
#include <iostream>
#include <string>
using String = std::string;
class Entity
{
private:
String m_Name;
public:
Entity() : m_Name("Unknown") {}
Entity(const String& name) : m_Name(name) {}
const String& GetName() const {
return m_Name;
};
};
int main() {
// new keyword is used to allocate memory on heap
int* b = new int; // new keyword will call the c function malloc which will allocate on heap memory = data and return a ptr to that plaock of memory
int* c = new int[50];
Entity* e1 = new Entity;//new keyword Not allocating only memory but also calling the constructor
Entity* e = new Entity[50];
//usually calling new will call underlined c function malloc
//malloc(50);
Entity* alloc = (Entity*)malloc(sizeof(Entity));//will not call constructor only allocate memory = memory of entity
delete e;//calls a c function free
Entity* e3 = new(c) Entity();//Placement New
Example 4: new in c++
//placement new in c++
char *buf = new char[sizeof(string)]; // pre-allocated buffer
string *p = new (buf) string("hi"); // placement new
string *q = new string("hi"); // ordinary heap allocation
/*Standard C++ also supports placement new operator, which constructs
an object on a pre-allocated buffer. This is useful when building a
memory pool, a garbage collector or simply when performance and exception
safety are paramount (there's no danger of allocation failure since the memory
has already been allocated, and constructing an object on a pre-allocated
buffer takes less time):
*/