728x90

데이터베이스 설계

데이터베이스 설계의 개념

- 사용자의 요구를 분석하여 그것에 맞게 설계하고 특정 DBMS로 데이터베이스를 구현하여 사용자들이 사용하는 것

 

데이터베이스 설계 순서

- 요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현

- 개념적 설계 : 개념 스키마, E-R 모델, 트랜잭션 모델링

- 논리적 설계 : 논리 스키마 설계 /  트랜잭션 인터페이스 설계 / 관계형 DB - Table, 계층형 DB - Tree, 망형 DB - Graph

- 물리적 설계 : 컴퓨터에 저장

 

데이터베이스 설계 시 고려사항

- 무결성(=정확성), 일관성, 회복, 보안, 효율성, 데이터베이스 확장

 

데이터 모델의 개념

데이터 모델의 정의

- 현실 세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형

 

데이터 모델의 구성 요소

- 개체(Entity), 속성(Attribute), 관계(Relation)

 

데이터 모델의 종류

- 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델

 

데이터 모델에 표시할 요소

- 구조(Structure) : 개체 타입들 간의 관계, 데이터 구조 및 정적 성질 표현

- 연산(Operation) : 저장된 데이터를 처리하는 작업에 대한 명세, DB를 조작하는 기본 도구

- 제약 조건(Constraint) :  데이터의 논리적인 제약 조건

 

데이터 모델의 구성 요소 - 개체, 속성, 관계

개체의 정의

- 데이터베이스의 표현하려는 정보

 

개체의 특징

- 유형, 무형의 정보로서 서로 연관된 몇 개의 속성으로 이루어짐

- 유일한 식별자에 의해 식별이 가능

- 개체(튜플)의 수를 카디널리티라고 함

- 개체 인스턴스 : 개체를 구성하고 있는 속성들이 값을 가져 하나의 개체를 나타내는 것. 개체 어커런스라고도 함

- 자료 흐름도(DFD)를 통해 업무 분석을 했을 경우는 자료 저장소(Data Store)를 이용함.

 

속성의 정의

- DB를 구성하는 가장 작은 논리적인 단위

- 파일에서의 데이터 항목 또는 데이터 필드에 해당

 

속성의 특징 

- 개체의 특성을 기술함

- 속성의 수를 차수 혹은 디그리(Degree)라고 함

 

속성의 종류

- 기본 속성 : 업무 분석을 통해 정의한 속성. 가장 많고 일반적 ex) 제품명

- 설계 속성 : 업무상 존재하지 않지만 설계 과정에서 도출해내는 속성 ex) 제품 코드

- 파생 속성 : 다른 속성으로부터 계산되거나 파생된 속성 ex) 제품 판매량, 판매 수익

 

속성의 분류

- 기본키 속성(Primary Key Attribute) : 개체를 식별할 수 있는 속성 ex) 학번

- 외래키 속성(Foreign Key Attribute) : 다른 개체와의 관계에서 포함된 속성

- 일반 속성 : 개체에 포함되어 있지만 기본키, 외래키가 아닌 속성

 

개체 간의 관계는 점선, 속성 간의 관계는 실선으로 표현

관계의 정의

- 개체 간의 논리적인 연결

 

관계의 형태

- 1:1, 1:N, N:M 3가지 관계가 있음

 

식별 / 비식별 관계

- 식별 관계 : A,B 개체 간의 관계에서 A 개체의 기본키가 B 개체의 외래키면서 동시에 기본인 것

- 비식별 관계 : A,B 개체 간의 관계에서 A 개체의 기본키가 B 개체의 외래키이지만 기본키는 아닌  

- 한 개체의 기본키를 다른 개체가 기본키로 사용하면 식별, 아니면 비식별

 

필기 정리

 

2020 정보처리기사 필기 정리

본 정리 글은 시나공 정보처리기사 필기책과 학교 특강을 참고하여 작성하였습니다. -> 책 정보 확인하기 2020년 정보처리기사 필기 정리 글입니다. 계속해서 글을 업데이트할 예정입니다. 작성이 안된 과목은 검..

1d1cblog.tistory.com

 

728x90
728x90

2020년부터 정보처리기사 개정이 되었습니다. 전체적으로 국가 직무능력표준(NCS) 체계를 반영하여 문제가 출제되었습니다. 

응시 자격

정보처리기사를 응시하기 위해서는 응시 자격을 갖춰야 합니다. 

  • 산업기사 등급 이상의 자격을 취득한 후 응시하려는 종목이 속하는 동일 및 유사 직무분야에서 1년 이상 실무에 종사한 사람
  • 기능사 자격을 취득한 후 응시하려는 종목이 속하는 동일 및 유사 직무분야에서 3년 이상 실무에 종사한 사람
  • 응시하려는 종목이 속하는 동일 및 유사 직무분야의 다른 종목의 기사 등급 이상의 자격을 취득한 사람
  • 관련학과의 대학졸업자등 또는 그 졸업예정자
  • 3년제 전문대학 관련학과 졸업자 등으로서 졸업 후 응시하려는 종목이 속하는 동일 및 유사 직무분야에서 1년 이상 실무에 종사한 사람
  • 2년제 전문대학 관련학과 졸업자등으로서 졸업 후 응시하려는 종목이 속하는 동일 유사 직무분야에서 2년 이상 실무에 종사한 사람
  • 동일 및 유사 직무분야의 기사 수준 기술훈련과정 이수자 또는 그 이수예정자
  • 동일 및 유사 직무분야의 산업기사 수준 기술훈련과정 이수자로서 이수 후 응시하려는 종목이 속하는 동일 및 유사 직무분야에서 2년 이상 실무에 종사한 사람
  • 응시하려는 종목이 속하는 동일 및 유사 직무분야에서 4년 이상 실무에 종사한 사람
  • 외국에서 동일한 종목에 해당하는 자격을 취득한 사람

출제 기준

정보처리기사 필기 출제 영역은 다음과 같습니다. 

 

소프트웨어 설계(20문제)

  1. 요구사항 확인
  2. 화면 설계
  3. 애플리케이션 설계
  4. 인터페이스 설계

소프트웨어 개발(20문제)

  1. 데이터 입출력 구현
  2. 통합 구현
  3. 제품 소프트웨어 패키징
  4. 애플리케이션 테스트 관리
  5. 인터페이스 구현

데이터베이스 구축(20문제)

  1. SQL 응용
  2. SQL 활용
  3. 논리 데이터베이스 설계
  4. 물리 데이터베이스 설계
  5. 데이터 전환

프로그래밍 언어 활용(20문제)

  1. 서버 프로그램 구현
  2. 프로그래밍 언어 활용
  3. 응용 SW 기초 기술 활용

정보시스템 구축 관리(20문제)

  1. 소프트웨어 개발 방법론 활용
  2. IT 프로젝트 정보 시스템 구축 관리
  3. 소프트웨어 개발 보안 구축
  4. 시스템 보안 구축

시험 시간은 2시간 30분이고 문제 수는 총 100문제입니다. 과목당 과락이 있어서 40점 이상이야 하고 평균이 60점 이상이 되어야 합니다. 한 과목이라도 40점 미만이면 불합격이게 됩니다.

 

필기를 붙었다면 응시 자격 서류를 제출하고 2년 동안은 실기 시험을 치를 수 있습니다.

 

자세한 내용은 아래 파일을 참고하시면 됩니다.

정보처리기사출제기준(2020_).hwp
0.05MB

다음은 실기시험의 출제 영역입니다.

  1. 요구사항 확인
  2. 데이터 입출력 구현
  3. 통합 구현
  4. 서버 프로그램 구현
  5. 인터페이스 구현
  6. 화면 설계
  7. 애플리케이션 테스트 관리
  8. SQL 응용
  9. 소프트웨어 개발 보안 구축
  10. 프로그래밍 언어 활용
  11. 응용 SW 기초 기술 활용
  12. 제품 소프트웨어 패키징

시험 방식은 필답형이고 시험 시간은 2시간 30분, 문제수는 15 ~ 25문제입니다.

 

기존의 전산영어와 순서도(알고리즘)이 사라졌고 프로그래밍 언어가 추가되었습니다. 프로그래밍 언어는 C/C++, Java, Python 중 출제될 수 있으므로 우선 3개의 언어를 모두 공부하는 것이 좋다고 생각합니다.

 

자세한 내용은 아래 파일을 참고하시면 됩니다.

2020년도 정보처리기사 실기시험 변경사항 안내.pdf
0.05MB

시험 일정

시험은 2020년 1회 ~ 3회까지 있고 일정은 다음과 같습니다. 

원서 접수 시 주의사항으로 원서 접수는 첫날 오전 10시부터이지만 마지막 날은 오후 6시까지입니다.

그리고 주말 및 공휴일, 공단 창립기념일(3월 18일)에는 실기시험 원서 접수 불가이니 이점 주의하셔야 합니다.

응시료

응시료는 필기는 19400원, 실기는 22600원입니다.

 

필기 정리 보기

 

2020 정보처리기사 필기 정리

본 정리 글은 시나공 정보처리기사 필기책과 학교 특강을 참고하여 작성하였습니다. -> 책 정보 확인하기 시나공 정보처리기사 필기 2020년 정보처리기사 NCS기반 전면 개편!정보처리기사 시험은 NCS 학습 모듈 중..

1d1cblog.tistory.com

필기 접수 방법 보기

 

2020 정보처리기사 필기 접수 방법

1회 정기시험 필기 접수기간입니다. 필기 접수를 위해선 큐넷에 들어갑니다. Q-net 자격의 모든것 www.q-net.or.kr 큐넷에 들어가서 회원가입 / 로그인을 해줍니다. 사진이 등록이 안되어 있다면 먼저 사진을 등록..

1d1cblog.tistory.com

 

728x90
728x90

이전글을 안보셨다면 먼저 보시길 추천드립니다.

https://1d1cblog.tistory.com/85

 

티스토리 구글 애드센스 넣기 - 애드센스 신청

먼저 구글 애드센스 홈페이지에 접속합니다. https://www.google.co.kr/adsense/start/#/?modal_active=none 웹사이트로 온라인에서 수익 창출 | Google 애드센스 – Google Navi Series 일본의 온라인 디렉..

1d1cblog.tistory.com

신청을 넣고 시간이 지나서 신청이 완료되었다면 아래와 같이 메일이 오게됩니다. 그럼 이제부터 애드센스를 적용하는 방법을 알려드리겠습니다.

다시 애드센스로 들어가주면 아래와 같이 창이 뜨게 됩니다.

 

좌측 배너에서 광고를 누르고 아래 처럼 신청한 사이트 목록이 뜨게되고 현재 자동광고 상태는 설정 해제 상태입니다. 

우측에 있는 연필모양을 눌러줍니다.

오른쪽 상단에 있는 자동 광고를 활성화 시켜 줍니다.

체크를 해 준 후 사이트에 적용 버튼을 눌러줍니다.

적용이 제대로 되었다면 자동 광고의 상태가 설정으로 바뀌게 됩니다.

이제 다음이로 광고 단위를 생성해야 합니다.

 

상단에 있는 광고 단위 기준 탭을 눌러줍니다.

 

아래 처럼 3가지 광고 단위를 만들 수 있는데 디스플레이 광고로 만들겠습니다. 디스플레이 광고를 클릭해줍니다.

아래와 같이 창이 뜨게 되는데 좌측 상단에 광고 단위의 이름을 설정할 수 있고 네모 박스 안에 있는 것처럼 광고의 형태를 세가지로 설정할 수 있습니다. 

 

설정을 한 다음 만들기를 눌러줍니다. 

제대로 만들어 졌으면 아래처럼 창이 뜨게 되는데 저 HTML 코드를 복사해서 티스토리에 적용해야 합니다.

 

코드 복사를 누른 후 완료를 눌러줍니다.

이런 방법으로 광고 단위를 2개를 만들어 줍니다.

 

그 후 티스토리의 블로그 관리로 들어옵니다. 좌측 배너의 플러그인을 눌러줍니다.

그 후 여러 플러그인 중에 구글 애드센스(반응형)을 선택해줍니다. 이때 사용하고 계신 스킨의 종류가 반응형이 아니면 제대로 적용되지 않을 수도 있습니다.

마지막으로 광고 형태를 선택해준 다음 아까 복사한 HTML 코드를 넣어주고 변경사항 적용을 눌러주면 됩니다.

적용 후 확인해보면 광고가 들어가 있는것을 확인해 볼 수 있습니다.

728x90
728x90

먼저 구글 애드센스 홈페이지에 접속합니다.

https://www.google.co.kr/adsense/start/#/?modal_active=none

 

웹사이트로 온라인에서 수익 창출 | Google 애드센스 – Google

Navi Series 일본의 온라인 디렉토리가 지역 업체를 홍보하고 커뮤니티를 형성하는 데 도움을 줍니다. Kenji Shinjo 씨는 애드센스를 사용하여 비즈니스가 성공하도록 콘텐츠에 집중할 수 있습니다.

www.google.co.kr

아래의 화면에서 초록 버튼의 지금 가입하기를 눌러줍니다.

다음으로 웹사이트의 URL, 이메일 주소, 동의 체크가 있습니다. URL에는 본인 블로그의 주소를 넣으면 됩니다. 

국가 또는 지역 선택에 대한민국을 선택해 줍니다.

계정 만들기 버튼을 누르면 아래와 같은 창이 뜨게 되는데 화살표를 눌러 확인하거나 바로 시작하기를 눌러줍니다.

그리고 아래 양식에 개인정보를 입력해줍니다.

양식을 입력하고 나면 아래와 같은 창이 뜨게 됩니다.

 

이제 이 애드센스 코드를 복사해서 블로그에 넣어줘야 합니다.

블로그 관리로 들어와서 좌측에 있는 배너에서 스킨 편집을 눌러줍니다.

그 후 우측에 있는 HTML 편집 버튼을 눌러줍니다.

마지막으로 HTML 탭에서 <head>와 </head> 사이에 복사한 코드를 넣어주고 적용을 누릅니다.

그리고 다시 애드센스로 돌아와서 체크박스 체크 후 완료를 눌러줍니다.

코드랑 사이트 URL을 제대로 설정했다면 아래와 같이 뜨게 됩니다.

마지막으로 이렇게 뜬다면 기다리고 있으면 며칠 내로 설정한 이메일로 메일이 오게 됩니다. 

애드센스 승낙 기준은 사람마다 말하는게 다르지만 3개월 이상 꾸준히 작성해야 승낙이 나는 것 같습니다. 우선 신청을 해보시고 거절되었다면 게시글 수나 활동 기간을 더 가지신 다음 신청하시면 될 것 같습니다.

728x90
728x90

오버 로딩(overloading)은 함수 다중 정의를 말합니다. 함수 다중 정의는 함수 하나가 여러 의미를 갖는 것을 말합니다.

 

이름은 같아도 함수를 구성하는 매개변수의 타입이나 개수가 달라지게 되면 다른 함수로 취급이 됩니다.

#include <iostream>

using namespace std;

int add(int num)
{
	return 10 + num;
}
int add(int num1, int num2)
{
	return num1 + num2;
}

int main()
{
	cout << "add(int num)의 결과 = " << add(100); 
	cout << " add(int num1, int num2)의 결과 = " << add(100, 200) << endl;
}
/*
실행결과
add(int num)의 결과 = 110 add(int num1, int num2)의 결과 = 300
*/

매개변수는 같고 반환형만 다른 경우에는 오류가 나게 됩니다. 

#include <iostream>

using namespace std;

int add(int num)
{
	return 10 + num;
} // E0311	반환 형식으로만 구분되는 함수를 오버로드할 수 없습니다.	

double add(int num)
{
	return 10.0 + num;
} // error C2556: 'double add(int)': 오버로드된 함수가 'int add(int)'과(와) 반환 형식만 다릅니다.

int main()
{
	cout << "add(int num)의 결과 = " << add(100); 
}

함수 오버 로딩을 사용할 때 주의해야 할 점은 모호성이 발생할 수 있다는 것을 염두에 두고 사용해야 합니다.

#include <iostream>

using namespace std;

int add(int num)
{
	return 10 + num;
}
int add(int num1, int num2 = 20)
{
	return num1 + num2;
}

int main()
{
	cout << "add(int num)의 결과 = " << add(100); 
    // error C2668: 'add': 오버로드된 함수에 대한 호출이 모호합니다.
}

다음으로 오버 라이딩(overriding)은 부모(기본) 클래스가 있고 상속받은(파생된) 자식(파생) 클래스가 있을 때 자식 클래스에서 부모 클래스에 있는 메서드를 재정의하는 것을 말합니다. 

#include <iostream>

using namespace std;

class parentClass {
public:
	void printData()
	{
		cout << "parentClass" << endl;
	}
};
class childClass_nonover : public parentClass {};
class childClass_doover : public parentClass {
public:
	void printData()
	{
		cout << "childClass" << endl;
	}
};

int main()
{
	parentClass Parent;
	childClass_doover Child_doover;
	childClass_nonover Child_nonover;

	Parent.printData();
	Child_nonover.printData();
	Child_doover.printData();
}
/*
실행결과
parentClass
parentClass
childClass
*/

childClass_nonover 클래스와 childClass_doover 클래스는 parentClass로부터 상속받고, childClass_doover클래스는 printData() 메소드를 재정의(overrride) 해줬습니다.

 

728x90

'Programming > C++' 카테고리의 다른 글

C++ 큰따옴표(") 출력하기  (0) 2020.02.27
C++ 역슬래쉬(\) 출력하기  (0) 2020.02.27
C++ 디폴트 매개변수  (0) 2020.02.06
C++ reference value(참조형 변수)  (0) 2020.02.04
C++ new, delete  (0) 2020.01.20
728x90

c++에서 함수를 선언, 정의할때 매개변수에 값을 세팅해주는 방법이 있습니다.

 

함수를 호출할 때 인수에 값을 넣어주게 되면 그 값을 매개변수가 받게 되지만 인수를 생략한 채 호출하게 되면 기본으로 세팅한 값을 함수에서 사용하게 됩니다.

#include <iostream>

using namespace std;

void default_func(int num = 5)
{
	cout << "num = " << num << endl;
}

int main()
{
	default_func();
	default_func(10);
}
/*
실행결과
num = 5
num = 10
*/

함수의 매개변수가 여러개인 경우도 사용할 수 있습니다. 다만 주의해야 할 점이 있습니다.

  • 매개변수의 기본 값은 매개변수의 오른쪽부터 선언해야 합니다.
#include <iostream>

using namespace std;

void default_func(int num1=10, int num2)	
{
	cout << "num1 = " << num1 << "num2 = " << num2 << endl;
} // error C2548: 'default_func': 매개 변수 2에 대한 기본 매개 변수가 없습니다.

int main()
{
	default_func(20);
	default_func(30,40);
}
  • 매개변수의 기본 값을 줄 때 생략을 할 수 없습니다.
#include <iostream>

using namespace std;

void default_func(int num1=10, int num2, int num3=20)
{
	cout << "num1 = " << num1 << "num2 = " << num2 << endl;
} // error C2548: 'default_func': 매개 변수 2에 대한 기본 매개 변수가 없습니다.

int main()
{
	default_func(30,40);
}
  • 함수를 호출할 때는 인수는 매개변수의 왼쪽부터 짝을 맞추게 됩니다.
#include <iostream>

using namespace std;

void default_func(int num1=10, int num2 = 20,int num3=30)
{
	cout << "num1 = " << num1 << "num2 = " << num2 << "num3 = " << num3 << endl;
}

int main()
{
	default_func();
	default_func(100);
	default_func(100,200);
	default_func(100,200,300);
}
/*
실행결과
num1 = 10 num2 = 20 num3 = 30
num1 = 100 num2 = 20 num3 = 30
num1 = 100 num2 = 200 num3 = 30
num1 = 100 num2 = 200 num3 = 300
*/

 

728x90

'Programming > C++' 카테고리의 다른 글

C++ 역슬래쉬(\) 출력하기  (0) 2020.02.27
C++ 오버로딩과 오버라이딩  (0) 2020.02.06
C++ reference value(참조형 변수)  (0) 2020.02.04
C++ new, delete  (0) 2020.01.20
C++11 decltype  (0) 2020.01.20
728x90

참조형 변수는 변수를 복사하지 않고 직접 객체를 이용합니다. 참조형 변수는 자신이 참조하는 변수의 별명이라고도 합니다.

 

참조형 변수의 선언은 아래와 같이 합니다. &를 포함한 자료형을 가진 변수를 선언하여 기존의 변수를 참조합니다.

int value = 5;
int& ref_value = value;

참조형 변수를 선언할 때 주의사항은 아래와 같습니다.

  • 상수값을 참조할 수 없습니다.
  • 선언과 동시에 참조를 해줘야 합니다.
  • NULL 값을 참조할 수 없습니다.
int& err_ref1 = 3;	// error C2440: '초기화 중': 'int'에서 'int &'(으)로 변환할 수 없습니다.
int& err_ref2;		// error C2530: 'err_ref2': 참조를 초기화해야 합니다.
int& err_ref3 = NULL;	// error C2440: '초기화 중': 'int'에서 'int &'(으)로 변환할 수 없습니다.

참조형 변수로 변수를 참조하게 되면 두 변수의 값은 동일하게 됩니다.

#include <iostream>

using namespace std;

int main()
{
	int value = 5;
	int& ref_value = value;

	cout << "value = " << value << " ref_value = " << ref_value << endl;
	value++;
	cout << "value = " << value << " ref_value = " << ref_value << endl;
	ref_value++;
	cout << "value = " << value << " ref_value = " << ref_value << endl;
}

/*
실행결과
value = 5 ref_value = 5
value = 6 ref_value = 6
value = 7 ref_value = 7
*/

참조자를 사용하여 함수의 매개변수를 통해 전달할 때 call-by-reference(참조에 의한 호출)을 사용할 수 있습니다. 이때 참조형 변수를 매개변수로 사용하면 값을 그대로 전달하지 않고 주소만 전달하게 되어 더욱 효율적이게 됩니다.

 

아래 그림은 call-by-value와 call-by-reference의 이해를 돕기 위한 그림입니다. 

출처 : 땔감툰님(https://pubul.tistory.com/166)

#include <iostream>

using namespace std;

void swap_ref(int& ref_x, int& ref_y)
{
	int tmp;
	tmp = ref_x;
	ref_x = ref_y;
	ref_y = tmp;
}
void swap_value(int val_x, int val_y)
{
	int tmp;
	tmp = val_x;
	val_x = val_y;
	val_y = tmp;
}

int main()
{
	int x = 5;
	int y = 7;

	cout << "x = " << x << " y = " << y << endl;
	swap_value(x, y);
	cout << "x = " << x << " y = " << y << endl;
	swap_ref(x, y);
	cout << "x = " << x << " y = " << y << endl;
}

/*
실행결과
x = 5 y = 7
x = 5 y = 7
x = 7 y = 5
*/
728x90

'Programming > C++' 카테고리의 다른 글

C++ 오버로딩과 오버라이딩  (0) 2020.02.06
C++ 디폴트 매개변수  (0) 2020.02.06
C++ new, delete  (0) 2020.01.20
C++11 decltype  (0) 2020.01.20
C++11 auto  (0) 2020.01.14
728x90

new는 객체나 배열을 동적으로 할당할 때 사용합니다. 반대로 delete는 동적으로 할당한 메모리를 해제할 때 사용합니다.

 

new 연산자를 사용해 class 객체를 할당할 때는 메모리가 먼저 할당되고 객체의 생성자가 호출됩니다.

 

new 연산자를 이용해서 배열을 하려고 할때 첫 번째 인자를 제외한 모든 차원의 값은 양수 값을 줘야합니다. 

#include <iostream>
#include <typeinfo>

using namespace std;

int main()
{
	int arrdata = 10;
	int* p1 = new int;
	int* p2 = new int[10];
	int(*p3)[10] = new int[arrdata][10];
	// int(*p4)[10] = new int[arrdata][arrdata];	// error C2540: 배열 범위가 상수 식이 아닙니다.

	delete p1;
	delete[] p2;
	delete[] p3;
}

위의 예제처럼 new를 이용해 동적으로 메모리를 할당해 줬으면 delete를 이용해 해제해야 합니다.

주의할 점은 배열형태로 동적 생성했다면 반드시 해제도 배열 형태로 해줘야 합니다.

 

new를 이용해 동적 생성할 때 const, volatile, class, enum을 포함할 수 있습니다. 하지만 참조형은 객체가 아니기때문에 new 연산자로 동적할당 할 수 없습니다.

#include <iostream>
#include <typeinfo>

using namespace std;

enum Data{
	data1, data2
};
class cTest {
	int data;
public:
	cTest() { cout << "cTest 생성자"; }
	~cTest() { cout << "cTest 소멸자"; }
};
int main()
{
	const int* p1 = new int;
	volatile int* p2 = new int;
	cTest* p3 = new cTest;
	Data* p4 = new Data;

	delete p1;
	delete p2;
	delete p3;
	delete p4;
}

/*
실행결과
cTest 생성자cTest 소멸자
*/

 

728x90

'Programming > C++' 카테고리의 다른 글

C++ 디폴트 매개변수  (0) 2020.02.06
C++ reference value(참조형 변수)  (0) 2020.02.04
C++11 decltype  (0) 2020.01.20
C++11 auto  (0) 2020.01.14
C++ const, mutable  (0) 2020.01.10

+ Recent posts