为什么在创建指针类型对象时内存没有分配给类?

Vik*_*rma 2 c++ object

我有点好奇为什么在创建指针类型对象时内存没有分配给类或结构?

例如 :-

class A
{
    public:

    void show()
    {
        cout<<" show function "<<endl;  
    }

};
int main()
{
A *a;
a->show();
   return 0;
};
Run Code Online (Sandbox Code Playgroud)

Kon*_*lph 10

因为指针和内存分配是先验完全无关的.实际上,在现代C++中,使用指针直接指向手动分配的内存是非常糟糕的.

在大多数情况下,指针指向现有对象 - 这是它们的目的:提供间接性.重申一下:这与内存分配完全无关.

如果你想直接拥有一个对象,你不需要指针:只需按原样声明对象(= by value):

A a;
a.show();
Run Code Online (Sandbox Code Playgroud)