C++Primer Plus 第12章 类和动态内存分配 12.10编程练习第2题new,delete的指向深度拷贝

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:本章练习第2题

涉及标准函数及关键词

toupper,tolower(), strcpy_s(),strcat_s(),strcmp,strlen(),new[],delete[].


实现如下效果
输出应与下面相似:
Please enter yourname:Fretta Farbo
My name is Fretta Farbo.
The string
MY NAME IS FRETTA FARBO ANDIAMA++ STUDENT.
contains 6’'characters in it.
Enter the name of a primary color for mixing light: yellowTry again!
BLUE
That’s right!
Bye

原文链接:https://blog.youkuaiyun.com/zhyjhacker/article/details/139555079
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着学习的升入,练习是必不可少的重要环节


提示:以下是本篇文章正文内容,下面案例可供参考

一、2.通过完成下面的工作来改进 String类

声明(即将 Stringl.h升级为 String2.h)。

a.对+运算符进行重载

使之可将两个字符串合并成1个。

b.提供一个 Stinglow()成员函数

将字符串中所有的字母字 符转换为小写(别忘了cctype 系列字符函数)。

c.提供 String()成员函数

将字符串中所有字母字符转换成大写。

d.提供一个这样的成员函数

它接受一个 char参数,返回该字符在字符串中出现的次数。使用下面的程序来测试您的工作:


二、头文件的定义

1.头文件

代码如下(示例):

 #ifndef PE12_2_H_
#define PE12_2_H_
namespace NString
{
   
	class String
	{
   
	public:
		static const unsigned buffMaxSize = 256;
		String(const char* text = " ");
		String(const String& str);
		~String();

		unsigned getLength(void)const;
		const char* toCstr(void)const;
		void stringUp(void);//to up
		void stringlow(void);//to low 
		unsigned has(char ch)const;

		String& operator=(const String& str);
		String& operator+=(const String& str);
		friend std::istream& operator>>(std::istream& is, String& str);
		char& operator[](unsigned index);
		const char& operator[](unsigned index)const;
	private:
		unsigned textLength;
		char* pText;
		void assignMember(const char* text);
	};

	std::ostream& operator<<(std::ostream& os, const String& str);

	bool operator<(const String& lvalue, const String& rvalue);
	bool operator>(const String& lvalue, const String& rvalue
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值