+ 1
obj ptr no needs point to previous created obj?
when u create a obj ptr can access members without point to a created obj what happend, it creates an object implicitly? dont need create object explicitly then? advantajes ans disadvantajes? thx
2 Answers
+ 2
Assuming you have a class
class A {
public:
int x;
A() {
x = 39;
std::cout << "Constructor called.";
}
};
and you do
A* obj;
std::cout << obj->x;
This is equivalent to using an uninitialized variable. Your code will compile, but whatever happens next is undefined behavior. You should notice that the constructor was never called, meaning that no new object was created.
Usually, when a pointer to an object is used, it is used alongside the new keyword to dynamically create an object to be pointed to.
A* obj = new A();
std::cout << obj->x;
delete obj;
0
so its purpose is only didactic, to make examples