C++基础问题总结

这篇博客总结了C++的基础问题,包括空类的sizeof值(总是为1),拷贝构造函数的作用及避免无限递归的注意事项,单例模式的实现与线程安全,lambda函数的概念和用法,以及智能指针在内存管理中的应用,旨在帮助读者深入理解C++的关键概念。
摘要由CSDN通过智能技术生成

1. 空类的sizeof值

  • 对于无成员函数,无成员变量的空类,其sizeof值为1. 虽然没有成员占内存,但必须在内存中占一定空间,由编译器决定(VS)。
  • 在空类中添加函数,其sizeof还是1。因为实例中不储存类函数相关内容,只通过函数地址调用。
  • 若有虚函数,则会为类生成虚函数表。在实例中添加指向虚函数表的指针。因此占一个指针的空间。

2. 拷贝构造函数

拷贝构造函数的形参不能是同类对象,要加const &
因为在形参传值的过程中,会有复制实例的过程,递归调用拷贝构造函数,这样会发出无限递归,导致栈溢出。

A(A a) {
   }; // wrong
A(const A& a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值