본문 바로가기
연산자 오버로딩 #include#include#includeusing namespace std; void main(void){//오버리딩이 같은이름으로 다른 기능을 수행하는것 //연산자 오버로딩은 객체지향 언어에서 다형성의 특징이다 //예를 string 으로 들면string strName;string strName2; strName = "NAM";strName2 = "SEUNGWOO";strName += strName2; if(strName == strName2){cout 2015. 10. 18.
오버라이딩_virtual2 정적 - 컴파일에 성격이 결정 된다동적 - 런타임에 성격이 결정된다 static - 컴파일 타임에 이미 성격이 결정된다( 정적) 실행중에 성격이 결정되는것은 dynamic 이라고 부른다 //함수실행 순서프로그램실행 - 함수호출 - 함수저장주소 참조 - 함수실행 - 함수호출위치로 복귀 이런과정에서 함수저장주소로 연결시켜주는것은 바인딩(binding) 이라고한다 호출하는 위치와 호출될 함수의 주소를 묶는 개념이다 1. 정적 바인딩 (static binding ) - 컴파일 타임에 이미 결정 이미 컴파일 타임에 호출할 위치와 호출될 함수의 주소가 결정이 되어 바인딩되는것이다정적 바인딩이 많으면 많을수록 컴파일 타임에 많은 정보가 결정이 된다. 즉 실행속도가 빨라진다/////////////////////////.. 2015. 10. 13.
오버라이딩_virtual 오버로딩 - 함수의 이름은 같은데 매개변수가 다른것 매개변수를 통해서 함수를 식별한다 오버라이딩 - 부모클래스에 이미 정의되어있는 멤버함수를 자식클래스에서다시 정의 해서 사용하는것 class A{public: voidRender(void){cout 2015. 10. 13.
캐스팅연산 캐스팅연산자..... int iA = 3.1415;이런식의 선언을 묵시적 선언이라고 한다int iB = (int)3.1415;이런식의 선언을 명시적 선언 이라고 한다 부동 소수점 형태에서 정수타입으로 묵시적인 형변환이 일어났다고 설명할수가있다 묵시적 형변환은 타입변환이 필요할때 우리가 따로 캐스팅(형변환) 을 안하면 컴파일러에 의해서 자동으로 일어나는 것이다 float fA = 9695.244f;int iC = fA ; // 묵시적 변환 캐스팅 문법에는 5가지가 있다 1. static_cast 형변환을 해주는 연산자로서 논리적으로 가능한 캐스팅을 수행해 준다class CParent{public:int iA;}; class CChild : public CParent{public:int iB;};void m.. 2015. 10. 12.
클래스_상속 클래스에 상속을 사용함에 있어서는꼭 필요할때만 상속을써야지 너무 남발하면 좋지 못하다 상속의 조건 1. is -a 관계가 성립 // 플레이어는 유닛이다2. has - a 관계가 성립 // 소유의 개념 // 플레이어 무기를 사용한다() 함수에서 칼을 휘두루다() 함수를 호출 하는것 has - a 관계는 포함 이라는 방법을 통해서 표현한다 //EXAMPLE class CSword{public:void Swing(){cout 2015. 10. 12.
깊은복사 얕은복사 class CObj{private:char* m_pName;//같은 공간을 참조하는 객체의 숫자를 새기위한 정적변수 static int m_iCnt;public:void Render(void){cout 2015. 10. 6.
static static 정적. 고정된 , 정지상태 정적 - 컴파일타임에 결정동적 - 런타임에 결정 (dynamic) void Render(void){int iTemp = 0;cout 2015. 10. 6.
함수 오버로딩 #includeint Sum(int iA, int iB){return iA + iB;}int Sum(int iA, int IB, int iC){return iA + iB + iC;}int Sum_Default_Parameter(int iA, int iB, int iC, int iD = 0, int iE = 0); int Multi(int iA, int iB){return iA* iB;}float Multi(float fA, float fB){return fA* fB;}double Multi(double dA, double dB){return dA* dB;} void main(void){cout 2015. 10. 5.
const const 는 예약어이다예약어는 변수명이나 함수명으로 못씀 class CObj{public:const int m_iTest;int m_iTest2;const float m_fTest;public:CObj(void):m_iTest(10), m_iTest2(20), m_fTest(30.f) // 이니셜라이저 문법사용{//m_iTest = 10; 생성자 에서도 초기화는 불가능하다//생성자가 호출되는 시점은 멤버들이 이미 메모리 공간에 할당된 시점이기때문에 const 멤버를 초기화 할수없다//이니셜라이저 문법을 사용해서 const 멤버를 초기화 할수있다 }CObj(int iTest, int iTest2, float fTest):m_iTest(iTest),m_iTest2(iTest2), m_fTest(fTest).. 2015. 10. 5.