【笔试】19、该门类添加赋值运算符函数
【笔试】19、该类型添加赋值运算符函数
/** *题目:如下类型CMyString的声明,请为该类型添加赋值运算符函数,Java没有赋值运算符,我们用dengyu函数代替 *时间:2015年8月24日09:55:46 *文件:CMyString.java *作者:cutter_point */ package bishi.Offer50.y2015.m08.d24; public class CMyString { private char m_pData[]; public CMyString(char pData[]) { m_pData = pData; } public CMyString(CMyString str) { m_pData = str.m_pData; } /* //C++中赋值运算符 //CMyString& operator=(const CMyString &str); CMyString& CMyString::operator=(const CMyString &str) { if(this == str) return *this; //回收空间 delete[] m_pData; m_pData == nullptr; //重新赋值 m_pData = new Char[strlen(str.m_pData) + 1]; strcpy(m_pData, str.m_pData); return *this; } */ public CMyString dengyu(CMyString str) { if(this == str) return this; //自我赋值 this.m_pData = null; m_pData = new char[str.m_pData.length]; for(int i = 0; i < m_pData.length; ++i) { m_pData[i] = str.m_pData[i]; } return this; } public String toString() { StringBuilder result = new StringBuilder("字符串结果是:"); for(int i = 0; i < m_pData.length; ++i) { result.append(m_pData[i]); } return result.toString(); } public static void main(String[] args) { // TODO Auto-generated method stub String s = "hello cutter_point"; String s2 = "hello world"; CMyString cms = new CMyString(s.toCharArray()); CMyString cms2 = new CMyString(s2.toCharArray()); System.out.println(cms.toString()); cms.dengyu(cms2); System.out.println(cms.toString()); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。