본문 바로가기

카테고리 없음

const method overloading

#include "stdafx.h"

#include <iostream>

#include <string>

#include <cfloat>


using namespace std;


class String {

private:

char *str;

unsigned int len;

public:

String();

String(const char *str);

String(const String &copy);

//String(const String &str);


~String();


char &Get(int index);

const char &Get(int index) const;

};


int main() {

const String str = "String"; // 상수 객체

String str2 = "String2"; // 일반 객체

char initial = 0;


initial = str.Get(0);


str2.Get(0) = 'A';


cout << str.Get(0) << endl;

cout << str2.Get(0) << endl;


return 0;

}


String::String(const char *str)

:str(0), len(0)

{

for (len = 0; str[len]; len++);

this->str = new char[len + 1];

for (unsigned int i = 0; i < len + 1; i++)

{

this->str[i] = str[i];

}

}


String::~String()

{

delete[] str;

len = 0;

}


char &String::Get(int index)

{

return str[index];

}


const char &String::Get(int index) const

{

return str[index];

}