궁금증이 생긴 소스 원본

__pPopup = new (std::nothrow) Popup();

 

 

※ 궁금증

1.new(std::nothrow)

사용방법)

new(std::nothrow) CBASE; 형식으로 할당 하면 되고, 예외발생시 예외를 던지지 않고,

NULL 포인터를 반환하게 해준다.

 

 

 

 

include 선언
define 정의
typedef 정의
using 정의

 
Class Name{
<멤버 변수, 멤버 함수 선언 부>
private:
public:
생성자, 소멸자
<구현부>
};




C++ 레퍼런스 선언이란?

Program_Language/C++ 2011. 8. 6. 02:43 Posted by Request
레퍼런스 선언이란?

이름이 존재하는 메모리 공간에 하나의 이름을 더 부여 하는 행위

ex)

int function(void)
{
int val;
val =20;
int &ref=val;
return val;
}



int function(void)
{
   int val;
  val=20;
  int &ref=val;
return ref;
}

레퍼런스는 선언과 동시에 반드시 초기화되어야 한다.

int main(void)
{
   int  &ref1;    // Error!    초기화 선언 안함
   int &ref2=10;   //Error!   상수값이 올수 없다.
}

C++ 객체 생성자의 필요성

Program_Language/C++ 2011. 8. 4. 01:30 Posted by Request

1. 객체의 생성자를 선언과 동시에 초기화 하는 것이 좋다.


2.객체의 생성 과정
  1) 메모리 할당
  2) 생성자의 호출 (클래스 100개 호출 하면 생성자도 100개 호출된다.)


생성자란?
-클래스명과 동일한 함수명을 가지며, 리턴타입과 리턴값도 없다.

 

C++ Encapsultion (캡슐화)

Program_Language/C++ 2011. 8. 4. 01:19 Posted by Request

인캡슐레이션이란?
-관련 있는 데이터와 함수를 하나로 묶는다는 것.
struct
접근 제한 기본값 : public

class
접근 제한 기본값 : private



인스턴스화란?
구현된 클래스를 활용하여 선언된 변수 또는 함수를 초기화 하는 것이라고 나 나름대로 간단하게 정리한다.

ex) 

class Account{
public:
char accID[20];
char secID[20];
char name[20];
int balance;
void Deposit(int money){ balance+=money;}
};

int main(void)
{
Account yoon ={"1234","1234","1234",1000};     // yoon 이라는 Account클래스의 인스턴스 or 객체 선언
}

C++구조체와 클래스 차이점?

Program_Language/C++ 2011. 7. 31. 00:25 Posted by Request
구조체는
하나이상의 변수를 그룹 지어서 새로운 자료형을 정의 한것.
C++에서는 함수 삽입이 가능하다.

클래스는
 멤버 변수(==객체)  +  멤버 함수

프로그램 생성의 접근 방법

1.현실)비디오 <-(대여)- 고객
2.프로그램) 비디오Item 객체 <---(대여 함수)--- 고객 객체




메모리 할당은 왜 할까?
-프로그램이 실행 되면 필요한 저장 공간을 운영 체제를 통해 공간을 할당 받는다.

데이터 영역 : 전역 변수와 static 변수의 이해하기.

1.전역(Global) 변수
-전역 변수는 함수 외부에서 선언되는 변수로 프로그램이 종료 될때 메모리에서 사라진다.
-전역 변수는 모든 함수에서 접근이 가능하므로 어떤 함수든 간에 접근하여 값을 변경 할수 있다.


2.정적(static) 변수
-비록 특정함수에 포함되어 있더라도 함수가 종료되도 메모리상에 그 값이 존재하고 프로그램이 종료될때 전역변수와 같이 비로서 메모리에서 사라진다.


-차이점 : 정적변수는 맨 처음 초기화되면 그 이후로는 값을 변경 할수 없다.

추가 설명 :
함수 내 static 변수(프로그램이 실행 될때 공간만 할당되고, 그 함수가 실행 될때 초기화 된다.)
전역 변수 + static  선언(프로그램이 실행 될때 공간이 이미 할당되고, 선언한 함수가 호출 될때 초기화 한다.)

3. stack 메모리 영역의 용도 및 특징 :
지역 변수, 매개 변수들의 공간
컴파일 타임에 메모리 공간 크기 결정.
프로그램 처음 시작 하는 main 함수 내의 변수 공간 컴파일 타임에 결정된다.


4.힙(heap) 메모리 영역은 어떤 용도로 사용 되는 메모리 공간은 무엇인가?
-런타임에 크기가 결정 되는 메모리 공간
하지만 지역 변수는 컴파일 타임에 스택 영역에 할당 되게 되어 있고,
런타임에 공간 할당은 힙에 할당 되게 되어 있다.

여기서 이러한 런타임에 할당 하기 위해서는
malloc(), free() 를 사용하여 힙 영역에 공간이 할당 되게 하여야 한다.

const 키워드의 의미

Program_Language/C++ 2011. 7. 29. 22:03 Posted by Request
const 변수를 상수화 시킬때 사용된다.
(상수화란 절대값?으로 한번 설정된 값을 수정하지 않는 다는 선언)

1.const int n=10;
-상수화가 된 변수 선언.

2.const int* n;
-데이터형 상수화 선언
int a = 0;
(const int* n = &a; (가능)
*n = 20 (대입연산은 안된다.)

3.int * const n;
-포인터 가 상수화 된 것.
n=&b;
n=&a; (포인터 연산 허용이 안된다.)

4.const int * const n;
-n이라는 가리키는 곳의 데이터도 상수화, 포인터도 상수화 선언.