컴공 일기259
게시글 주소: https://susi.orbi.kr/00070852115
String 처리에 대한 객체 예제를 쭉 작성해보고 있습니다.
보잘 것 없지만 지원할 만한 것은 다 지원되는 듯 합니다… 구현되지 않은 기능들이 아직 많지만요.
이동시맨틱에, 딥 카피에, 각종 사칙 연산…
직관적인 편의성을 제공하는 객체로 변모해가는 중..
#pragma once
#include <iostream>
using namespace std;
class CMystring
{
public:
CMystring();
~CMystring();
//멤버 변수에 포인터가 있으므로 Deep Copy를 반드시 지원해야 한다.
CMystring(const CMystring&);
explicit CMystring(const char* pszData);
CMystring(CMystring&&) noexcept;
const char* getData() const;
void setData(const char*);
const size_t getLength() const;
CMystring& operator=(const CMystring& rhs);
CMystring& operator=(CMystring&& rhs) noexcept;
CMystring operator+(const CMystring& rhs);
size_t append(const char* param);
operator const char*(void) const;
private:
char*m_pszData = nullptr;
size_t length = 0;
};
CMystring::CMystring()
{
cout << "CMystring()" << endl;
}
//Deep Copy
CMystring::CMystring(const CMystring& rhs)
{
setData(rhs.m_pszData);
}
CMystring::CMystring(const char* pszData)
{
cout << "CMystring(const char*)" << endl;
setData(pszData);
}
CMystring::CMystring(CMystring&& rhs)
{
cout << "CMystring(CMystirng&&)" << endl;
delete m_pszData;
m_pszData = rhs.m_pszData; //shallow copy
this->length = rhs.length;
rhs.m_pszData = nullptr; //댕글링 포인터로 만들어준다.
}
CMystring::~CMystring()
{
cout << "~CMystring()" << endl;
delete[] m_pszData;
}
CMystring& CMystring::operator=(const CMystring& rhs)
{
this->setData(rhs.m_pszData);
return *this;
}
CMystring& CMystring::operator=(CMystring&& rhs)
{
cout << "opeartor=(CMystring&&)" << endl;
delete m_pszData;
m_pszData = rhs.m_pszData;
this->length = rhs.length;
rhs.m_pszData = nullptr;
return *this;
}
CMystring::operator const char*(void) const
{
return m_pszData;
}
const char* CMystring::getData() const
{
return m_pszData;
}
void CMystring::setData(const char* pParam)
{
//setData()가 여러번 호출될 경우, m_pszData가 null이 아닐 수도 있다.
if(m_pszData != nullptr)
delete[] m_pszData;
size_t length = strlen(pParam);
m_pszData = new char[length + 1];
this->length = length;
strcpy(m_pszData, pParam);
}
CMystring CMystring::operator+(const CMystring& rhs)
{
CMystring retVal(*this);
retVal.append(rhs.getData());
return retVal;
}
size_t CMystring::append(const char* param)
{
if(param == nullptr) return -1;
if(m_pszData == nullptr)
{
this->setData(param);
return this->length;
}
size_t lenAppend = strlen(param);
char* result = new char[length + lenAppend + 1];
strncpy(result, m_pszData, length+1);
result[length] = '\0';
strncat(result, param, lenAppend);
delete[] m_pszData;
m_pszData = result;
length += lenAppend;
return this->length;
}
const size_t CMystring::getLength() const
{
return this->length;
}
CMystring operator+(const char* pLeft, const CMystring& rhs)
{
CMystring result(pLeft);
result.append(rhs.getData());
return result;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
물리 개념인강 1개 기출풀이인강 1개 들을려고하는데요. 1
물리 30초반 나오는데 배기범쌤 필수본으로 시작하면 많이 어려울까요? 역학만...
-
안녕하세요 제가 생각하기론 수평방향으로 55도라고 생각되는데 틀렸다고 나오네요...
-
제가 스카이에듀 빅4받아서 물리강의를 들으려 하는데 강화연,정원재 둘중 멀...
-
학생부가 물리쪽으로 잘되어있고 선생님들께서 내신도 괜찮다고 하는데 지균은 아니어서...
-
둘 다 하세요
-
국어영역 검토진모집합니다. (유료/ 표지에 이름등재) 3
오르비언 여러분 안녕하세요, 의 저자 한은영입니다.는 국어영역을 공부하는 여러분들이...
-
문제 및 해설 검토자를 모집합니다.일정이 조금 빡빡하므로 지금 여유있으신 분이...
-
peet 준비하려고 하는데 1학년때 약대 안간다고 생각해서 아무생각 없이 정보를...
-
물리 인강보다 도저히 이해가 안가면 어떻게하는게 나을까요? 25
전과생이라서 어느정도 힘들 수 있다는 건 감안했는데요 정말 뭐 요즘 외계어 보는 거...
-
문과에서 이과로 2학년 2학기 때 전과해서 3학년1학기 내신에 물리2가 들어갑니다...
-
투과목은무슨ㅜㅜ물1지1할게요지1 천체 공부들어가야할 시기물1 성재t 커리 시작God...
-
성의껏 알려주시면 이 성의가 선물드립니다. ㅠ ㅠ ㅠ ㅠㅡㅜ ㅠ 선물은 내공입니다....
-
개정 물리와 그전 물리가 상당히다르다고하던데요 노베이스에서 물리 커리따라가서...
-
과탐 개념서 0
안녕하세요 뒤늦은 나이에 의대준비하는 재수생입니다 과탐 물1+지1 개념부터 다시...
-
사촌동생이 고3이네요... 제가 고3인게 엊그제 같은데 그게 벌써 4년 전이네요....
-
혹시 스듀 정원재쌤 물리1 기본개념, 만점완성 둘 다 들어보신 분 계신가요?일단...
-
물리1 하세요 2
물리1은 사랑입니다♡
-
물리 인강 추천 4
16수능 물리1 봤는데 5등급.......부끄럽습니다 독재하려 하는데 물리 인강...
-
예비고3입니다 과학 논술로 물리를 볼려고 하는데 인강들 보면 배기범은 의치대 강의...
-
물1을 물덕이 함? 28
물덕 얘기는 2 아니에요?ㅋㅋ 과고 물덕 애들 말하는거로 알고있었는데 ㅇㅅㅇ..?
-
가격이 얼마였나요????
-
일단 1년치 모의고사 싹다 모으긴 했는데 생각보단 많이 부족하네요. PEET 같이...
-
일단 1년치 평가원, 교육청, 사설까지 모아봤는데 문제량이 생각보다 적어서요.....
-
작년에 정원재 풀커리탔던학생인데 물리 개념은 어느정도 잡혀있어서 강화연 39개념...
-
물1 1타 1
물리1은 생물 백호선생님처럼 1타 선생님이 없나요???수능 물1 1등급 받으신...
-
물리1하세요 21
개꿀입니다
-
원래 물1생1하려했는데 어찌어찌 전교권이라 강요해서 하게 됐네요.생2는하기싫고...
-
(속도는 지구의 바둑이 기준입니다) 내신 물리에서 문득 이런 그림을 본 적이 있는...
-
PNMIE 물리1 분야 입단 시험※ 물리1, 2 검토진 모집은 PNMIE 공식 시험...
-
반쪽 인증 5
반쪽이지만 최근 사진입니당\n참조출연 귀여운 무슨 콩알\n
-
PNMIE 물리2 입단 시험 공지 안녕하세요. PNMIE 물리2 출제부장...
-
PNMIE 물리1 분야 입단 시험 공지※ 물리2 분야는 빠른 시일 내에 다른...
-
물리학과 취업? 1
물리학과는 보통 어느쪽으로 취업되나요? 궁금..전공을 살리는 경우의 취업과 그렇지...
-
님들아 5공 전자전기과 붙었는데 물리2 예습해가는게 도움되겠죠?? 2
수능끝나고 게임도 실컷했는데(기록보니 거의 한달도안되서 240시간..ㅎㄷㄷ) 이제...
-
파이널 렉쳐, 와부 모의고사의 개정 피드백을 받습니다. 17
역학 문제집인 파이널 렉쳐와, 고난도 모의고사인 와부 모의고사를...
-
[Wabu대표] 물리1 독학 가이드라인 - 일반편 36
이 가이드라인은 ①학원, 인강 등의 사교육비를 들이지 않을 예정이고 ②중학교 내신...
-
문송하옵니다만 문과에서 공대로가는 예비신입생입니다. 고교시절동안 물리를 한번도...
-
강북메가에 다녔던 지인 말로는 반에 물2지2러가 실제로 존재했고 수능때 과탐둘다 다...
-
수능 물리1이나 수능 물리2의 자작 문제를 출제하는 것을 즐기고, 모의고사나 교재를...
-
내년에 수능 보는데요 물리를 처음하다보니 아무래도 안철우가 좋다는 의견이 많던데...
-
저 또한 요번 삼반수를 하면서 국영수탐구에 변별을 어떤과목은 당하고(소위 폭망한...
-
안철우 인강에서 수능완성 읽어보라고 정지에너지 이런 말 아냐고 말하더만 진짜로 나옴 ㅎㄷㄷ
-
물리1 9번문제에서정전기유도와 유전분극은 대전이 아니지 않나요??저 말 대로면...
-
물1 10번 0
물1 10번 ㄷ 왜틀린거져 ㅠㅠ 자기력선 감소하다 증가하니깐 방향바뀌는거아닌가...
-
물리1 10
물리1은 역학(1단원)만 어렵고 나머지는 쉽다는데 진짠가요...? 예비고등생
-
아.. 미치겠습니다 이제 중2올라가는 중1입니다. 먼저 저 내신은 괜찮게...
-
물리1 하려면.. 25
물리1 공부하려면 수학과 과학을 어느파트까지 공부해야 수월하죠?
-
내일 오후 10시부터 15분 역학 모의고사 배포합니다. 1
오르비 #물리에 배포합니다.어차피 뿌리는 것이므로 답도 동봉합니다.월요일 중 언젠가...
-
물리1 질문좀 3
1. 막대자석이 원형 도선에 수직으로 같은 속력으로 들어가고 있다. 시간 당...
C인가요?
C++ 이에용