#208 Assignment Operator Overloading (C++ Only)
来源:互联网 发布:混迹知乎的浩天哥 编辑:程序博客网 时间:2024/04/30 05:55
题目描述:
Implement an assignment operator overloading method.
Make sure that:
- The new data can be copied correctly
- The old data can be deleted / free correctly.
- We can assign like
A = B = C
Clarification
This problem is for C++
only as Java and Python don't have overloading for assignment operator.
Example
If we assign like A = B
, the data in A should be deleted, and A can have a copy of data from B.
If we assign like A = B = C
, both A and B should have a copy of data from C.
Challenge
题目思路:Consider about the safety issue if you can and make sure you released the old data.
这题就是考c++中的overload。题目要求先delete A,再copy B中的data。那么首先检查A的data是不是已经等于B了,如果是,直接return;如果不是,先delete A的data,然后new一个新的char*,把B的data copy到A中去。
Mycode(AC = 5ms):
class Solution {public: char *m_pData; Solution() { this->m_pData = NULL; } Solution(char *pData) { this->m_pData = pData; } // Implement an assignment operator Solution operator=(const Solution &object) { // write your code here // if A == B, just return A if (this->m_pData == object.m_pData){ return *this; } // delete A if (this->m_pData) { this->m_pData = NULL; delete[] this->m_pData; } // if B has data, then new a char[], and copy the data // from B to A if (object.m_pData){ this->m_pData = new char[strlen(object.m_pData) + 1]; strcpy(this->m_pData, object.m_pData); } return *this; }};
0 0
- #208 Assignment Operator Overloading (C++ Only)
- LintCode_208 Assignment Operator Overloading (C++ Only)
- C++.Homework. Operator overloading.01
- C++.Homework. Operator overloading.02
- Operator Overloading
- Operator overloading
- Operator Overloading
- C++. Operator overloading.Fraction's operation
- [C++]copy constructor and copy assignment operator
- C++.Experiment 4.Operator overloading(& date plus days)
- 14.2.2 Operator overloading
- C# Operator Overloading
- What is operator overloading
- Simple operator overloading
- [Operator Overloading]Set Operations
- CPP-operator==, <overloading
- Operator Overloading in Swift Tutorial
- C++ Overloading (Operator and Function)
- 基于NX的研发产品设计管理平台实现(十五)-数据查询2
- 封装类网易新闻评论TextView,监听键盘
- 【Leetcode】226. Invert Binary Tree 【递归】【层次遍历】
- c++ enum 类型
- 安卓kernel自主唤醒系统方法—设置alarm
- #208 Assignment Operator Overloading (C++ Only)
- 编译条件
- uva 12589 dp
- “野指针”
- [poj3687]拓扑排序的应用
- 多线程——等待唤醒机制经典实例:生产者消费者模式(优化)
- Java知识点16
- 整型和指针长度不同造成的Bug
- Java知识点17