Today's Question:  What's your opinion about Alibaba mooncake incident?        GIVE A SHOUT

Technical Article => Programming =>  C++

new expression vs operator new in C++

  sonic0002      2012-08-12 11:42:39      2,589    0    0

In C++, there is a new mechanism for memory allocation and management. When we want to initialize an object, we can use new expression to get enough memory for storing an object and also initialize the object. When we want to create a new object, we can use new expression, for example:

Obj *obj=new Obj;


Basically, what the new expression does is to allocate enough memory for storing the obj object, in addition, it will initialize the object with some intial values.

Also, there is an operator new existing in C++, what it does is to allocate raw memory. It only controls allocating memory, not including the initiliation of object. It isn't much different from malloc(). We can call operator new explicitly:

char*x =static_cast<char*>(operatornew(10));

New expression cannot be overloaded, but operator new can be overloaded. You can define your own way to allocate memory in your class implementation.

For more information, you can refer :

The operator new function

The new operator

C++ NEW EXPRESSION OPERATOR NEW

  SAVE AS PDF   MARK AS READ   MARK AS IMPORTANT

  RELATED


  0 COMMENT


No comment for this article.


  WRITE ARTICLE

Can you guess the end?

By sonic0002
When two cars are competing for the same lane, the unexpected happens.