`
ydbc
  • 浏览: 715453 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

字符串的构造函数和析构函数以及赋值函数的重载

 
阅读更多

字符串的构造函数和析构函数以及赋值函数的重载,是面试中经常考到的问题,意在考察应聘者对于重载以及构造函数、析构函数的理解。


程序如下:

#include<iostream>
#include<string.h>
using namespace std;

class String
{
public:
	String(const char*str = NULL);
	String(const String &other);
	String& operator=(const String &other );

	void print()const
	{
	
		printf("%s",m_Data);
		cout<<"\n";
	}

	~String();



private:
	char *m_Data;


};

String::~String()
{

	delete [] m_Data;
}

String::String(const char*str)
{
	if(NULL == str)
	{
		m_Data = new char[1];
		*m_Data = '\0';
	
	}
	else
	{
	
		int length = strlen(str);

		m_Data = new char[length + 1];
		strcpy(m_Data,str);
	}


}

String::String(const String &other)
{
	int length = strlen(other.m_Data);
		m_Data = new char[length + 1];
		strcpy(m_Data,other.m_Data);




}

String &String::operator =(const String &other)
{

	if(this == &other)
		return *this;

	delete  [] m_Data;
		int length = strlen(other.m_Data);
		m_Data = new char[length + 1];
		strcpy(m_Data,other.m_Data);

		return *this;


}


int main()
{
	String str1("china");
	String str2(str1);
	str2.print();
	cout<<"\n";

	String str3 = str2;
	str3.print();

	

	return 0;
}


程序的执行 结果是:




分享到:
评论

相关推荐

    详解C++ 编写String 的构造函数、拷贝构造函数、析构函数和赋值函数

    主要介绍了详解C++ 编写String 的构造函数、拷贝构造函数、析构函数和赋值函数的相关资料,这里提供实例帮助大家理解掌握这部分内容,需要的朋友可以参考下

    asd.zip_nationxnd

    编写该类的构造函数、拷贝构造函数和析构函数,在构造函数和拷贝构造函数中动态申请内存空间赋值给m_data。用于存储字符串。在析构函数中释放内存空间。 ⑵ 重载运算符“+”作为类MyString的成员函数,使能完成字符...

    封装一个,完善字符串,字符串

    字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),完成串的赋值与合并...

    字符串比较、求串的长度、判断串是

    定义一个串类CMyString,建立适当的构造函数 字符串使用指针保存字符串 必须实现如下操作, 字符串比较、求串的长度、判断串是否为空、将串置空、 字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString...

    字符串类,运算符重载

    c++ 字符串类 运算符重载 动态内存 构造函数析构函数

    封装一个,完善字符串,字符串的基本操作

    字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),完成串的赋值与合并...

    运算符重载和函数重载

    如运算符重载和函数重载 字符串连接,+=运算符重载 求子串: 左边几个字符,,, Left(int nCount) 右边几个,, Right(int nCount) 某个位置开始的几个字符 Mid(int nPos,int nCout) 2..进一步熟悉掌握对类的构造...

    Java小程序--关于Date类的构造函数的重载

    对于Date类中的构造函数,使用重载的方法,可以选择3中方式输出:1.MM/XX/DDDD 2.January 7 1989 3.37 1989(前一个参数为一年中的第37天) 使用s.equal("m")比较字符串。

    字符串类报告(里面包含源代码)

    定义字符串类,并对构造函数进行重载,对主要运算符进行重载,定义对字符串进行操作的其它函数,通过以上操作实现对字符串的基本操作。

    字符串类源代码

    定义字符串类,并对构造函数进行重载,对主要运算符进行重载,定义对字符串进行操作的其它函数,通过以上操作实现对字符串的基本操作。

    -C++参考大全(第四版) (2010 年度畅销榜

    12.11 何时执行构造函数和析构函数 12.12 作用域分辨符 12.13 嵌套类 12.14 局部类 12.15 向函数传递对象 12.16 返回对象 12.17 对象赋值 第13章 数组、指针、引用和动态分配运算符 13.1 对象数组 13.2 指向对象的...

    java字符串操作大全

    7、regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。  boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)  ...

    c++设计实现一个&quot;字符串类&quot;,要求系统设计具有一定弹性和可扩展性,使得后续维护和扩展功能更容易,增加或修改系统功能变得更简单。

    4、编写拷贝构造函数和重载赋值运算符,完成字符串类对象直接赋值操作。 5、编写析构函数,释放初始化时开辟的空间。 6、编写求字符串长度函数,不允许使用strlen或类似功能函数。 7、编写字符串拷贝函数,不允许...

    C 实现计算机自动重启

    类,构造函数和析构函数,类的指针详细演示 操作符重载,this,静态成员 简单介绍 CString对象的连接和格式化字符串 MFC类库详解 C++实现为应用程序添加多语言菜单 C++虚函数机制分析及实现 C++二进制文件读写...

    C++编程思想习题

    4.4含有构造函数和析构函数的stash 4.5含有构造函数和析构函数的stack 4.6集合初始化 4.7缺省构造函数 4.8小结 4.9练习 第5章 函数重载与缺省参数 5.1范围分解 5.1.1用返回值重载 5.1.2安全类型连接 5.2重载的例子 ...

    C# 基础学习案例源码-2023(32套源码案例)适合初学者学习使用

    CS核心_04封装_构造函数和析构函数 CS核心_05_封装_成员属性 CS核心_06_封装_索引器 CS核心_07_封装_静态成员 CS核心_08_封装_静态类和静态成员 CS核心_09_封装_拓展方法 CS核心_10_封装_运算符重载 CS核心_11_封装_...

    C++_作业_2_答案2

    2. 常量 1、1.0、“1”的数据类型是什么 4. 类的构造函数和析构函数可以重载吗 5. 写出下面 main()函数中每条指令的执行结果 6. 字符串类的类

    C++_作业_2_答案1

    2. 常量 1、1.0、“1”的数据类型是什么 4. 类的构造函数和析构函数可以重载吗 5. 写出下面 main()函数中每条指令的执行结果 6. 字符串类的类

    c++ 运算符重载和方法重载

    strcmp(s1,s2)比较s1和s2字符串内容是否相同 strcat(s1,s2)拼接字符串,把s2拼接在s1的末尾 strchr(s1,ch)找到s1这个字符串里面第一次出现ch这个字符的位置 strstr(s1,s2)找到字符串s1里面第一次出现s2...

    c++语言程序设计(第三版)

    4.4 构造函数和析构函数 4.5 类的组合 4.6 类模板 4.7 面向对象标记 4.8 小结 习题 第5章 C++程序的结构 5.1 作用域与可见性 5.2 生存期 5.3 数据与函数 5.4 静态成员 5.5 友元 5.6 共享数据的保护 5.7 多文件结构...

Global site tag (gtag.js) - Google Analytics