c+String 클래스 코드 인 스 턴 스 작성
class String
{
public:
String(const char* = nullptr); //
String(const String& other); //
~String(void); //
String& operator = (const String& other); //
private:
char* m_data;
};
//
String::String(const char* str)
{
if(str == nullptr){
m_data = new char[1]; // '\0'
*m_data = '\0';
}else{
m_data = new char[strlen(str) + 1]; //+1 '\0'
strcpy(m_data, str);
}
}
//
String::String(const String& other)
{
if(other == nullptr){
m_data = nullptr;
}else{
// other.m_data
m_data = new char[strlen(other.m_data) + 1];
strcpy(m_data, other.m_data);
}
}
//
String::~String(void)
{
if(m_data != nullptr){
delete [] m_data;
m_data = nullptr;
}
}
//
String& String::operator=(const String& other)
{
//
if(this != other){
delete [] m_data; //
if(other == nullptr){
m_data = nullptr;
}else{
m_data = new char[strlen(other.m_data) + 1];
strcpy(m_data, other.m_data);
}
}
return *this;
}
나머지 두 개 는 과부하+번호 와=번호 입 니 다.
String& operator + (String& other)
{
char* tmp = m_data;
m_data = new char[strlen(m_data) + strlen(other.m_data) + 1];
strcpy(m_data, tmp); //
strcpy(m_data, other.m_data); //
delete [] tmp; //
return *this;
}
String& operator = (String& other)
{
if(this = other){
return *this;
}
if(m_data != nullptr){
delete [] m_data; //
}
m_data = new char [strlen(other.m_data) + 1];
strcpy(m_data, other.m_data);
return *this;
}
위 에서 말 한 것 은 소 편 이 소개 한 c+String 류 의 상세 한 통합 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 메 시 지 를 남 겨 주세요.소 편 은 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu 1717 소수 화 점수 2 (수학)소수 화 점수 2 레이 는 수학 시간 에 선생님 의 말씀 을 듣 고 모든 소수 가 점수 로 표시 되 는 형식 이 라 고 말 했다. 그 는 녹 기 시 작 했 고 곧 완성 되 었 다. 그러나 그 는 또 하나의 문 제 를...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.