C++ 构造函数

默认构造函数(default)

class joker{
    joker()=default;
};

当出现有参数的构造函数时,编译器就不会创建默认构造函数。但是又想生产默认构造函数怎么办,default 作用就是声明一个默认构造函数。

default可以用于构造函数,拷贝构造函数,析构函数。

浅拷

复制代码
class joker{
    public:
    joker(joker& clown){
    a=clown.a;
    b=clown.b;
    }
    int a,b;

};
复制代码

为什么必须要用引用?

不加引用的话会产生拷贝递归,形参与实参的拷贝会无休止的进行。

深拷

复制代码
class joker{
public:
joker(joker& clown){
a=clown.a;
b=clown.b;
c=new char[strlen(clown.c)];
strcpy(clown.c,c); 
}
~joker(){
delete []c;
}
int a,b; char *c; };
复制代码

深层拷贝的目的是防止指针变量被析构两次,造成内存泄漏。

 

posted @   joker_2255  阅读(27)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示