본문 바로가기
extern extern 키워드 변수에서 많이 쓴다다른 파일에서 해당변수를 참조하기 위해서 사용하게 된다 // stdafx.h : 자주 사용하지만 자주 변경되지는 않는// 표준 시스템 포함 파일 및 프로젝트 관련 포함 파일이// 들어 있는 포함 파일입니다.// #pragma once #include "targetver.h" #include #include // TODO: 프로그램에 필요한 추가 헤더는 여기에서 참조합니다. #include using namespace std; //헝가리안표기법 g_ 붙이기extern int g_iTest; ////////////////////////////////extern.cpp///////////////// #include "stdafx.h"#include "Test.h" int .. 2015. 10. 6.
깊은복사 얕은복사 class CObj{private:char* m_pName;//같은 공간을 참조하는 객체의 숫자를 새기위한 정적변수 static int m_iCnt;public:void Render(void){cout 2015. 10. 6.
복사생성자 복사생성자 클래스가 만들어질때 자동으로 생성되는것 4가지가있다 1. 기본생성자 (디폴트생성자) 2. 소멸자 3. 기본 대입연산자 4. 기본복사 생성자 class CObj{private:intm_iTest;floatm_fTest;double m_dTest;public:voidRender(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.
클래스_전방선언 클래스의 전방선언 클래스들이 서로 예를들면 A가 B를 사용하고B가 A를 사용하는 경우 코드가 서로 참조하면서 상호참조 문제가 발생하게된다 이럴때 전방선언 문법을 사용하면 잘 해결할수있다. 전방선언 시에 가장 중요한점 클래스 멤버로 가지고있을 관련 객체들을 반드시 포인터로 선언해야 한다. 그리고 사용할 위치의 cpp 파일에서 포함해 주면 된다 전방선언의 특성상 이러한 클래스가 있다 라고 알려주는것 정도 이지정확한 크기를 알려주는 것이 아니기때문에 포인터로 선언한다 /////////////////A.h#pragma once //클래스전방선언class CB;class CA{private://반드시 포인터로 . 크기는 4바이트라서 지금 크기를 알필요는없다CB* m_pB;public:CA(void);~CA(voi.. 2015. 10. 2.
클래스2 클래스 4대속성 - 은닉화, 캡슐화 , 상속성, 다형성 접근지정자 private - 자기자신 클래스 내부에서만 접근이 가능하다public - 내부와 외부 모두에서 접근이 가능하다protected - 자기자신 클래스 내부와 상속을 받은 자식클래스 내부에서만 접근이 가능하다 typedef struct tagInfo{//public:int iTest;}INFO;class CInfo{private:int m_iTest;intm_iRenerCount;private:voidIncreaseRenderCount(){++m_iRenderCount;}public:voidSetTest(int _iTest){m_iTest = _iTest;}intGetTest(void){return m_iTest;}voidRender(void.. 2015. 10. 1.
클래스1 #include struct tagInfo{int iTest;char cTest;double dTest;float fTest;};union uInfo{int iTest;char cTest;double dTest;float fTest;};//타입타파인 잡아 쓸수있다typedef union uInfo2{int iTest;char cTest;double dTest;float fTest;};typedef struct tagBingo{union{struct{float _11 , _12, _13, _14, _15,_21, _22, _23, _24 _25,_31, _32, _33, _34, _35,_41, _42, _43, _44, _45,_51, _52, _53, _54, _55};float m1[25];float.. 2015. 9. 30.