본문 바로가기

C 언어

c++ 기초단계 (11/22) 가상이 아닌 함수는 포인터의 정적인 형을 근거로 구동되지만, 가상 함수는 가리키고 있는 객체의 동적인 형을 근거하여 구동된다. 공통된 포인터로 다양한 객체를 가리킬 수 있다. Musician은 추상적인 클래스 11: virtual void play() = 0; //순수가상함수(첨보는것) 단지 이것만 쓰면 에러 abstract 어쩌고저쩌고… abstract 추상적인 이라는 뜻 추상이란 뭘까… 실제 존재하지 않는것을 유추하는 것이다. 순수가상함수는 상속을 받게 되면 상속클래스내에 함수를 반드시 만들어 줘야 한다. 가상함수는 상속을 받더라도 만들지 않아도 된다. 순수가상함수가 있으면 추상클래스라 한다. 1: //순수가상함수, 오버라이딩 2: #include 3: 4: class Musician //제일 상위클.. 더보기
c++ 기초단계 (11/21) cout 더보기
c++ 기초단계 (11/18) 생성자, 복사생성자, 대입연산자 안만들면 자동구동 –> 바이너리복사 되서 문제 생김 void init(classtype & r) { a = r.a; b = r.b; … } 이 함수를 한줄에 해결하는 방법 inline void init(classtype & r) t = 1; 더보기
c++ 기초단계 (11/16) 다차원배열과 포인터의 관계? int a[30]; 더보기
#pragma 지시어의 사용법 정리 #pragma는 이것을 지원하는 다른 compiler에서 방해가 없이 C++ Builder에서 원하는 지시어를 정의할 수 있도록 해줍니다. 만일 지시명을 인식하지 못한다면 에러 또는 경고 메세지를 수반하지 않고서 #pragma의 지시를 무시하게 됩니다. Borland C++ Builder에서 지원하는 #pragma지시어는 모두 18가지가 있습니다. 1. #pragma anon_struct . 사용법 #pragma anon_struct on #pragma anon_struct off . Class에 익명의 구조체를 포함하여 compile하는것을 허락할 것인지를 지시합니다. 익명이란 tag를 갖지 않는다는것을 의미합니다. ex) 1: #pragma anon_struct on 2: struct S { 3: i.. 더보기