C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[379] property 를 사용하여 클래스 표현하기
김성철.마법사 [douner] 7630 읽음    2003-02-18 21:40
VCL 에서는 __property 를 제공하여 쉽게 속성을 이용하여 클래스를 설계할 수 있습니다.
일반 클래스에서는 Get/Set 함수 이름을 이용하거나 함수오버로딩을 이용하여 해결했습니다.
윈도우즈에서는 __declspec(property(get=get_func_name, put=put_func_name)) variable; 를 이용해서 속성을 만들 수 있습니다 ;]

property 를 이용하여 클래스 표현하기

<
#include <windows.h>
#include <stdio.h>

#define property(DATATYPE, READ, WRITE) __declspec(property(get=READ, put=WRITE)) DATATYPE  

class CFoo
{
private:
    int myAge;
    int myChars[10][10];
public:
    int  GetAge(void) { return myAge; }
    void SetAge(int AAge) { myAge=AAge; }
    char GetChar(int x, int y) { return myChars[x][y]; }
    void SetChar(int x, int y, char c) { myChars[x][y] = c; }
    property(int, GetAge, SetAge) Age;
    property(char,GetChar, SetChar) Chars[];
    //:] 배열 변수는 이렇게 선언됩니다.
};

int main(void)
{
    CFoo iFoo;

    iFoo.Age = 100;
    iFoo.Chars[0][0] = 'a';
    iFoo.Chars[0][1] = 'b';
    printf("%d\n", iFoo.Age);
    printf("%c%c\n", iFoo.Chars[0][0], iFoo.Chars[0][1]);
    system("PAUSE");
    return 0;
}
<


김윤동.제라툴 [zeratul]   2003-03-12 10:57 X
맛지군요.
클라우제비츠 [fastfeel]   2003-03-16 08:39 X
멋지네요^^
Lee, PhilHo@Xius.NET [xius]   2003-03-27 15:14 X
우아~ 멋있네요.. 근데 Windows 용이라고 말씀하신건 ANSI C++은 아니라는 말씀인가요?
홍환민.행복 [hhshhm]   2003-04-01 00:12 X
헉... 획기적이네요.... 프로퍼티.. 씨빌더에서만 되는게 아니군요...
홍환민.행복 [hhshhm]   2003-04-01 00:12 X
근데 씨빌더도 이거 이용해서 구현한걸까요???
홍환민.행복 [hhshhm]   2003-04-01 00:25 X
흠 ㅜㅜ 한가지 흠을 발견했네요 흑흑 ㅜㅜ... Get, Set 함수를 private에 놓으면 안되네요 흑 ㅜㅜ
김성연 [sykim25]   2004-05-17 17:55 X
VS .Net 2003 에서 컴파일 에러가 나서 해멨는데요, 배열일 경우에는
property(char,GetChar, SetChar) Chars[][];
이렇게 해주어야 하더라구요 ^^
푸른노래 [song4201]   2004-06-02 10:46 X
이런... 맨날하던거만 해서 이런거 전혀 생각지도 못했네요.
정말 고맙습니다. 깔끔하게 잘 정리되어 더 좋습니다.
잘 쓰겠습니다.

+ -

관련 글 리스트
379 property 를 사용하여 클래스 표현하기 김성철.마법사 7630 2003/02/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.