String类的构造函数,析构函数、拷贝构造函数和赋值函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
(1)构造函数
String::String(const char *str)
{
if(str==NULL)
{
  m_data  = new char[1];
  *m_data = ‘\0’;
}
else
{
   Int length = strlen(str);
   m_data = new char[length];
   Strcpy(m_data,str);
}
}
(2)析构函数
String::~String(void)
{
   delete []m_data;
}
(3)拷贝构造函数
  String::String(const String &other)
{
Int length = strlen(other);
 m_data = new char[length+1];
Strcpy(m_data,other.m_data);
}
(4)赋值函数
String & String::operate =  (const String &other)
 {
     If(this == &other)
       Return *this;
     Delete []m_data;
    m_data = NULL;
    M_data = new char[strlen(other.m_data)];
    Strcpy(m_data,other.m_data);
     Return *this;
}

  

posted @   轻轻的吻  阅读(1455)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示