Class Pointer initialization C++


 
Thread Tools Search this Thread
Top Forums Programming Class Pointer initialization C++
# 1  
Old 05-04-2011
Class Pointer initialization C++

Hello everyone,

I have a question, that are the following ways of pointer intialization same ?

ClassA *point;

point = 0;

point = new ClassA;



Thanks a load in advance!!

Regards,
# 2  
Old 05-04-2011
Of course they're not the same, one of them isn't even valid C++ syntax.
# 3  
Old 05-04-2011
I thought they are same in the sense that :

point = 0; //intializes the pointer to zero value and

point = new ClassA(); //intializes the pointer sm memory bt. not any value means zero value
# 4  
Old 05-04-2011
as far as I remember, in
Code:
ClassA * point;
point = new ClassA;

`new' will allocate memory for exactly one object of type `ClassA' and yield the address of the 1-st memory cell at which the definition of the object will start. In
Code:
ClassA *point;
point = 0;

you're not creating any object at all but just explictily stating that the pointer `point' will point to the zero-th cell. In that case your pointer merely becomes the so called `null pointer' - a special kind of pointers which do not point to any valid memory address.

I might err, so please correct me, if I'm wrong

---------- Post updated at 11:20 AM ---------- Previous update was at 11:20 AM ----------

as far as I remember, in
Code:
ClassA * point;
point = new ClassA;

`new' will allocate memory for exactly one object of type `ClassA' and yield the address of the 1-st memory cell at which the definition of the object will start. In
Code:
ClassA *point;
point = 0;

you're not creating any object at all but just explictily stating that the pointer `point' will point to the zero-th cell. In that case your pointer merely becomes the so called `null pointer' - a special kind of pointers which do not point to any valid memory address.

I might err, so please correct me, if I'm wrong
# 5  
Old 05-04-2011
I get what you guys are saying;

point = 0;

//intializing the pointer a NULL value...means pointing to nthing!

point = new ClassA();

//intializing the pointer value of the object of the Class A and hence ofcorse points to a valid memory!

Thanks a tonnn guys!!
# 6  
Old 05-04-2011
Quote:
Originally Posted by mind@work
I get what you guys are saying;

point = 0;

//intializing the pointer a NULL value...means pointing to nthing!
That's still not even valid C++ syntax. It will fail to build with compiler errors. You can't assign an integer to a pointer in C++ without a typecast.
Quote:
point = new ClassA();

//intializing the pointer value of the object of the Class A and hence ofcorse points to a valid memory!

Thanks a tonnn guys!!
# 7  
Old 05-04-2011
gotcha: //only if I'm right this time!

ClassA{};

ClassA *point;
*point = 0;

ClassA *point = new ClassA();
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Array initialization inside class in C++

const int VALUES = {7,4,2,1,0}; //or int VALUES = {7,4,2,1,0};this statement inside a class definition gives error. Why? (3 Replies)
Discussion started by: milhan
3 Replies

2. Programming

C++ : Base class member function not accessible from derived class

Hello All, I am a learner in C++. I was testing my inheritance knowledge with following piece of code. #include <iostream> using namespace std; class base { public : void display() { cout << "In base display()" << endl; } void display(int k) {... (2 Replies)
Discussion started by: anand.shah
2 Replies

3. Programming

Size of Derived class, upon virtual base class inheritance

I have the two class definition as follows. class A { public: int a; }; class B : virtual public A{ }; The size of class A is shown as 4, and size of class B is shown as 16. Why is this effect ?. (2 Replies)
Discussion started by: techmonk
2 Replies

4. UNIX for Advanced & Expert Users

Get pointer for existing device class (struct class) in Linux kernel module

Hi all! I am trying to register a device in an existing device class, but I am having trouble getting the pointer to an existing class. I can create a class in a module, get the pointer to it and then use it to register the device with: *cl = class_create(THIS_MODULE, className);... (0 Replies)
Discussion started by: hdaniel@ualg.pt
0 Replies

5. Programming

static use for class inside the same class c++

Hi, I believe the next code is wrong: class Egg { Egg e; int i; Egg(int ii=0) : i(ii) {} }; because you would end up with an endless definition (memory allocation) of Egg objects, thus int i. Ok, so God Eckel proposes for a singleton: class Egg { static Egg e; int... (5 Replies)
Discussion started by: xavipoes
5 Replies

6. Programming

Pointer for class not working that well. Syntax I think.

I'll be gratefull for any help. Thanks. :) This is the non class type error: # g++ -I/usr/include/mysql -I/usr/include/mysql++ -lmysqlpp -L/usr/lib/mysql -L/usr/local/lib/mysql++ loaddsgsports.cpp -o loaddsgsports loaddsgsports.cpp: In function âint outputToImport(const char*, const char*,... (1 Reply)
Discussion started by: sepoto
1 Replies

7. Programming

C++ class definition with a member of the same class

Hi, i have a question about C++. Is it possible to declare a class with a member ot the same class? For example, a linked list or i want to convert this C code to C++ class (Elemento) typedef struct elemento { char name; char value; List<struct elemento> ltElementos; ... (7 Replies)
Discussion started by: pogdorica
7 Replies

8. UNIX for Dummies Questions & Answers

car class (not school class)

im just trying to have some fun and kill some time writing a c++ program that has a person type in a car make and model then gives them a year and a price. or something like that. i always have problems getting it goin but once the ball is rolling im usually pretty good. anyone wanna help me out? ... (1 Reply)
Discussion started by: rickym2626
1 Replies

9. Programming

pass a pointer-to-pointer, or return a pointer?

If one wants to get a start address of a array or a string or a block of memory via a function, there are at least two methods to achieve it: (1) one is to pass a pointer-to-pointer parameter, like: int my_malloc(int size, char **pmem) { *pmem=(char *)malloc(size); if(*pmem==NULL)... (11 Replies)
Discussion started by: aaronwong
11 Replies

10. Programming

Struct Initialization

Hi We are using a code generator for initializing structures with the #define macro. Compiling it with the GCC 2.8.1 (with -ansi) it OK. But when we are using the SUN C 5.0 compiler it screams. Following is a code sample: #include <stdlib.h> #include <stdio.h> typedef struct TEST3 {... (4 Replies)
Discussion started by: amatsaka
4 Replies
Login or Register to Ask a Question