字符串的构造函数和析构函数以及赋值函数的重载,是面试中经常考到的问题,意在考察应聘者对于重载以及构造函数、析构函数的理解。
程序如下:
#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 的构造函数、拷贝构造函数、析构函数和赋值函数的相关资料,这里提供实例帮助大家理解掌握这部分内容,需要的朋友可以参考下
编写该类的构造函数、拷贝构造函数和析构函数,在构造函数和拷贝构造函数中动态申请内存空间赋值给m_data。用于存储字符串。在析构函数中释放内存空间。 ⑵ 重载运算符“+”作为类MyString的成员函数,使能完成字符...
字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),完成串的赋值与合并...
定义一个串类CMyString,建立适当的构造函数 字符串使用指针保存字符串 必须实现如下操作, 字符串比较、求串的长度、判断串是否为空、将串置空、 字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString...
c++ 字符串类 运算符重载 动态内存 构造函数析构函数
字符串比较、求串的长度、判断串是否为空、将串置空、字符串赋值(包括两个字符串类复制,一个字符串赋值到CmyString对象)、求字符串中的一个字符或改变字符串中的一个字符(采用重载[]),完成串的赋值与合并...
如运算符重载和函数重载 字符串连接,+=运算符重载 求子串: 左边几个字符,,, Left(int nCount) 右边几个,, Right(int nCount) 某个位置开始的几个字符 Mid(int nPos,int nCout) 2..进一步熟悉掌握对类的构造...
对于Date类中的构造函数,使用重载的方法,可以选择3中方式输出:1.MM/XX/DDDD 2.January 7 1989 3.37 1989(前一个参数为一年中的第37天) 使用s.equal("m")比较字符串。
定义字符串类,并对构造函数进行重载,对主要运算符进行重载,定义对字符串进行操作的其它函数,通过以上操作实现对字符串的基本操作。
定义字符串类,并对构造函数进行重载,对主要运算符进行重载,定义对字符串进行操作的其它函数,通过以上操作实现对字符串的基本操作。
12.11 何时执行构造函数和析构函数 12.12 作用域分辨符 12.13 嵌套类 12.14 局部类 12.15 向函数传递对象 12.16 返回对象 12.17 对象赋值 第13章 数组、指针、引用和动态分配运算符 13.1 对象数组 13.2 指向对象的...
7、regionMatches() 用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。 boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars) ...
4、编写拷贝构造函数和重载赋值运算符,完成字符串类对象直接赋值操作。 5、编写析构函数,释放初始化时开辟的空间。 6、编写求字符串长度函数,不允许使用strlen或类似功能函数。 7、编写字符串拷贝函数,不允许...
类,构造函数和析构函数,类的指针详细演示 操作符重载,this,静态成员 简单介绍 CString对象的连接和格式化字符串 MFC类库详解 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重载的例子 ...
CS核心_04封装_构造函数和析构函数 CS核心_05_封装_成员属性 CS核心_06_封装_索引器 CS核心_07_封装_静态成员 CS核心_08_封装_静态类和静态成员 CS核心_09_封装_拓展方法 CS核心_10_封装_运算符重载 CS核心_11_封装_...
2. 常量 1、1.0、“1”的数据类型是什么 4. 类的构造函数和析构函数可以重载吗 5. 写出下面 main()函数中每条指令的执行结果 6. 字符串类的类
2. 常量 1、1.0、“1”的数据类型是什么 4. 类的构造函数和析构函数可以重载吗 5. 写出下面 main()函数中每条指令的执行结果 6. 字符串类的类
strcmp(s1,s2)比较s1和s2字符串内容是否相同 strcat(s1,s2)拼接字符串,把s2拼接在s1的末尾 strchr(s1,ch)找到s1这个字符串里面第一次出现ch这个字符的位置 strstr(s1,s2)找到字符串s1里面第一次出现s2...
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 多文件结构...