为什么指针对象没有调用默认构造函数
Why does the pointer object did not call default constructor
#include<iostream>
using namespace std;
class test
{
public:
test(){cout<<"Constructor called ";}
};
int main()
{
test a,*b;
return 0;
}
我预计构造函数会被调用两次。为什么指针对象没有调用默认构造函数
指针只是一个指针。它可以指向对象,但不一定这样做。声明指针不会自动创建实例。指针未初始化为指向任意位置。
为了一个牵强附会的类比,考虑我给你一张写着它的纸:"我的钱包"。我没有给你钱,我只是给了你一个"指针",告诉你在哪里可以找到钱(不一定,前提是我的钱包里真的有钱(。对于你的代码,更好的类比是:我给你一张空纸。无论如何,给你一个"指针",告诉你在哪里可以找到钱,不幸的是,这不会在我的钱包里创造钱:(
相关文章:
- 如何在C++中调用默认模板功能参数?
- 为什么即使我调用参数化构造函数也会调用默认构造函数?
- 没有用于调用默认构造函数的匹配函数
- 为什么指针对象没有调用默认构造函数
- 调用默认构造函数时不引用它
- 为什么我的对象声明不调用默认构造函数?
- 为什么要尝试调用默认构造函数?
- 在创建对象向量时,不为每个对象唯一调用默认对象构造函数
- std::map 在 [] 上调用默认构造函数,在 insert() 上调用复制构造函数
- 是否可以从移动构造函数调用默认构造函数?
- 为什么类型变量;不调用默认 CTR
- 声明对象而不调用默认构造函数
- 作为参数的空初始值设定项列表不调用默认构造函数
- 如果类划分为单独的文件,则不调用默认构造函数
- 为什么"S x({})"仅在GCC 7/C++1z模式下调用默认构造函数?
- C++ 继承基构造函数,但仍调用默认派生构造函数
- 在返回语句中调用默认构造函数
- 在构造函数参数中调用默认构造函数
- 如何防止在基类初始化器中调用默认构造函数?
- 如何在以下C 代码中在同一对象上调用默认值和复制构造函数