为什么指针对象没有调用默认构造函数

Why does the pointer object did not call default constructor

本文关键字:调用 默认 构造函数 指针 对象 为什么      更新时间:2023-10-16
#include<iostream>
using namespace std;
class test
{
public:
test(){cout<<"Constructor called ";}
};
int main()
{
test a,*b;
return 0;
}

我预计构造函数会被调用两次。为什么指针对象没有调用默认构造函数

指针只是一个指针。它可以指向对象,但不一定这样做。声明指针不会自动创建实例。指针未初始化为指向任意位置。

为了一个牵强附会的类比,考虑我给你一张写着它的纸:"我的钱包"。我没有给你钱,我只是给了你一个"指针",告诉你在哪里可以找到钱(不一定,前提是我的钱包里真的有钱(。对于你的代码,更好的类比是:我给你一张空纸。无论如何,给你一个"指针",告诉你在哪里可以找到钱,不幸的是,这不会在我的钱包里创造钱:(