본문 바로가기

[C#] 가상 매서드 (virtual method) /가상 함수 한 클래스가 다른 클래스를 상속받아 쓰는 중에서베이스 클래스에 가상함수를 선언하고 상속받아 쓰는 함수에서는 해당 함수를 정의해서 사용. class Control{public virtual void Speed() // virtual 키워드로 선언{}} class Robot:Control{public override void Speed() // override 키워드로 실제 사용할 매서드 구현{}} 그렇다 어디다 써먹을까를 생각하면 기억하기 쉬워진다..로봇이 많아~ 아주 많아 근데 로봇들은 움직임을 컨트롤 클래스로 구현해줘야해그리고 각 로봇들은 이동 속도가 다 달라~ 걸을때 뛸때 고장났을때 모두 달라~그럼 각 로봇의 컨트롤마다 속도를 다르게 정의 해줘야할거 같아ㅋㅋ 더보기
[C#] 매서드 재정의 /함수 오버라이딩 쉽게 상속받은 클래스에서 베이스 클래스의 멤버 함수(매서드)를 재정의 하는 것 class Control{public void Test(){ }} class Robot:Control{public new void Test(){ }} 위와 같이 로봇은 컨트롤 클래스를 상속받았는데 컨르롤의 멤버함수인 테스트를 다시 정의 해서 사용.이 일부 로봇들은 똑같이 컨트롤 하면 되는데 일부 보스로봇은 컨트롤 방법이 달라야 한다 뭐 이럴때~ㅋㅋ 더보기
3D MAX 렌더링 ☆ 7개월간의 사투끝에 얻어낸 작품 3D MAX 렌더링 무심코 봤던 스마트폰 갤러리에 남아있던 3D MAX 렌더링 사진들... 3D MAX에 대해서 아무것도 모르고 시작했을 때 내가 직접 모델링을 해서 이미지를 뽑아냈을 때의 성취감... 사진을 보고 있으면 흐뭇해지기도 한당~^-^ 비록 지금은 3D MAX를 하지 않지만...하면 할 수록 어려워지는 묘한 매력을 갖고있는 프로그램이 아닐까? 생각해본다. 원하는 모델을 직접 모델링을 하고 와인잔의 유리재질과 붉은와인의 재질 그리고 양은냄비의 재질까지도 렌더링으로 뽑아내면 멋진 이미지로 바꿔주는 기특한 3D MAX. 요렇게 이쁜 소품을 만들어서 요렇게 벽에 걸어주면 장식 완성~ㅋ 왼쪽에 갖은 폼을 다 잡고 서있는 삼총사 칭구들은 원래 수수깡느낌으로 간단하게 표현하려 했으나... 하다보니 욕심이 .. 더보기
md5 암호화 ◇ 간단하게 플래시로 암호화 암호화 방법 중에서 많이 쓰고 큰 회사나 미 국방부에서도 사용했던 MD5 알고리즘의 변환기 입니다. 역해시가 없어서 복호화 함수가 없습니다. MD5 암호화(역해시가 없는 단방향 암호화 입니다.) 브루트포스 어택으로만 해킹이 가능합니다. (단어를 암호화해서 그 값을 대조하는 방식) 그래서 요즘은 "MD5 암호화 복호화" 라고 떠드는 사이트에 잘못 자기가 자주 사용하는 비밀번호를 입력했다가는 위험한 상황이 나중에 벌어질 수 있습니다. 인터넷에서는 여러분의 비밀번호를 DB에 꾸준히 차곡차곡 쌓고 있는 사람들이 있답니다. 제작자분께 감사합니다. 더보기
API 주요메시지 종류 필수 윈도우관련 메시지 정리 ● WM_CREATE ² CreateWindow() 함수에 의해 메인 윈도우가 생성된 직후에 화면에 보여지기 전에 보내지는 메시지. ² 각종 초기화를 하기에 적합한 장소. ² 참고로, 대화상자는 이 메시지 대신 WM_INITDIALOG 메시지를 받는다. ² wParam : 사용되지 않음. ² lParam : 윈도우 생성정보인 CREATESTRUCT 구조체의 포인터. ● WM_DESTROY ² 윈도우가 파괴될 때 보내지는 메시지. ² 각종 마무리 작업 하기에 적합한 장소. ² 사용자가 DestroyWindow 함수를 호출할 때, 윈도우가 파괴되는데, 이 함수 호출 결과로 WM_DESTROY 메시지가 전달된다. ² 사용자가 Alt+F4 혹은 닫기 버튼을 누를 경우, WM_CLOS.. 더보기
복사생성자 #include #include using namespace std; class data{ private: char value[100]; public: data(char *val){ //생성자는 char* 자료형만 받는다. strcpy(value,val); //하지만 메인에서 data b를 선언하는곳을 보면 } void output(){ cout 더보기
특이한 특수문자 [ 특이한 특수문자] ➔➕➖➗➘➙➚➛➜➝➞➟➠➡➢➣➤➥➦➧➨➩➪➫➬➭➮➯➰➱➲➳➴➵➶➷➸➹➺➻➼➽➾☀☁☂☃☄★☆☇☈☉☊☋☌☍☎☏☐☑☒☓☚☛☜☝☞☟☠☡☢☣☤☥☦☧☨☩☪☫☬☭☮☯☰☱☲☳☴☵☶☷☸☹☺☻☼☽☾☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓♔♕♖♗♘♙♚♛♜♝♞♟ ♠♡♢♣♤♥♦♧♨♩♪♫♬♭♮♯♰♱✁✂✃✄✅✆✇✈✉✌✍✎✏✐✑✒✓✔✕✖✗✘✙✚✛✜✝✞✟✠✡✢✣✤✥✦✧ ✨✩✪✫✬✭✮✯✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞❟❠❡ ❢❣❤❥❦❧ღ❶❷❸❹❺❻❼❽❾❿➀➁➂➃➄➅➆➇➈➉ 더보기
포인터 변수와 주소 음 위에보면 kk의 처음 주소가 00396018인데 나중에 새로운 포인터 k2의 주소를 물렸을때는 주소가 00396308로 바뀐걸 볼 수 있다 더보기
c++ string 함수 구현 #include using namespace std; int mystrlen(const char *pstring); int mystrcpy(char *pdev,const char *psrc); int mystrcat(char *pdev,const char *psrc); int mystrcmp(char *pdev,const char *psrc); int main(void) { char a[10]="aaa"; cout 더보기
동적할당된 다중(이중) 포인터를 인자로 함수 호출 #include using namespace std; void set_data(int **a,int x,int y); void get_data(int **a,int x,int y); void main() { int **a=NULL; int x=0; int y=0; coutx; couty; a = new int *[x]; for(int i=0;i 더보기