/*
* http://sosal.tistory.com/
* made by so_Sal
*/
class에 대한 코드를 한번 살펴보겠습니다.
#include<iostream>
#include<cstring>
using namespace std; //간단한 입출력 헤더와 string 제어 헤더문입니다.
class CTest{
private:
const int x;
public:
CTest(); // 디폴트 생성자
CTest(int nValue);
~CTest(); //클레스가 종료될때 호출되는 함수
void print() const;
const char *changeText() const;
};
/*
* 클레스 선언문입니다.
* private에는 외부에서 접근할수 없는 변수입니다.
* public안에서 선언된 함수들이 private 변수에 접근하여 값을 바꾸던지 하겠죠.
* 아래부터는 클레스 안에 있는 함수들의 내용입니다.
*/
CTest::CTest(int value) : x(value){ //empty
}
/*
* 이 함수는 자료형도 없고, 클레스 이름과 동일한 함수입니다.
* 이것을 생성자 함수라고 합니다.
* 클레스가 선언될때 자동으로 실행되는 함수입니다.
* (프로그램이 종료될때 객체를 제거하는 소멸자 함수도 아래에 있습니다.)
* ex)
* CTest a(10); //생성자 함수가 value를 하나 받는군요.
* 클레스 이름부분을 좀더 자세히 보겠습니다.
* CTest::CTest(int value) : x(value){}
* : x(value)는 x라는 변수가 private 안에 const로 선언되어있기 때문에
* 직접 제어하지 못합니다. 그럴땐 저런식으로 값을 넘겨주게 됩니다.
*/
CTest::~CTest(){
//empty
}
void CTest::print() const{ //const로 끝나는 함수는 클레스 내 변수를 변경하지 못함
// x=20;// (내부적으로 어떠한 값도 변경 못한다. const임)
int x = 20; // 하지만 새로운 멤버변수는 선언 가능
cout<< "x = "<<x<<endl;
cout<< " this -> x = " << this->x;
cout<< "\n (*this).x = " <<(*this).x;
}
/*
* 위에서 언급했던 소멸자입니다. 역시 자료형은 없고 이름이 클레스 이름과 똑같은데
* ~ 이게 붙어있네요. 소멸자를 뜻하는 것입니다.
* 프로그램이 종료될때 자동으로 실행되어 메모리를 없애줍니다.
*/
const char* CTest::changeText() const{
char *pTest; //리턴받는 변수가 const라서 const로 돌려준다.
pTest = new char[30];
strcpy(pTest,"I am a boy.");
return pTest;
}
int main(void){
CTest testobj(12);
testobj.print();
//testobj.x=10;
const char *pTemp;
pTemp = testobj.changeText();
cout<<endl<<pTemp<<endl;
return 0;
}
'Programing > C- programing' 카테고리의 다른 글
C++ 배열에서 원하는 문자열 찾아서 고치기 바꾸기 (1) | 2009.10.15 |
---|---|
C++ 배열에서 원하는 크기 삭제 프로그램 코드 (1) | 2009.10.15 |
C++ class date 코드 (0) | 2009.10.15 |
C언어 String과, 관련함수 function (2) | 2009.09.29 |
Pointer * Reference (2) | 2009.09.29 |