SlideShare a Scribd company logo
1 of 8
Download to read offline
C++ !
http://blog.naver.com/ruvendix
구성원 초기화(멤버 이니셜라이저)
구성원 초기화를 이용하면 필드(멤버 변수)를 생성과 동시에 초기화!
생성자 안에서 초기화하는 것보다 더 빠름!
const, 참조자, 클래스는 반드시 구성원 초기화를 이용해야 함!
class CTest
{
const int iNum;
CTest(void) :iNum(10)
{
// 여기보다 구성원 초기화가 더 빠름
}
};
http://blog.naver.com/ruvendix
firend 예약어
firend 예약어는 정보 은폐를 무효화시킴!
따라서 신중하게 사용해야 함!
class CTest
{
friend class CPos; // Cpos를 친구로 인정
int iNum;
};
Class Cpos
{
// CPos는 CTest의 필드 및 메서드 사용 가능!
};
http://blog.naver.com/ruvendix
this 포인터
컴파일러는 여러 객체를 구분할 수 있어야 함!
그래서 this라는 객체 자신을 가리키는 포인터를 이용!
class CTest
{
int iNum; // this->iNum;
};
http://blog.naver.com/ruvendix
클래스와 static
객체가 아니라! 클래스 차원의 정보가 필요하다면?
static으로 필드와 메서드를 만들어라!
class CTest
{
static int iNum; // 모든 CTest 객체가 공유
static void Show(void); // 모든 CTest 객체가 공유
};
int Ctest::iNum = 0; // static 필드는 이렇게 초기화!
C++은 static 덕분에 전역 변수의 존재가 약해짐!
그냥 전역 변수를 사용하고 싶으면 static 필드를 사용!
http://blog.naver.com/ruvendix
클래스와 const
클래스의 필드를 변경하고 싶지 않다면?
const로 필드와 메서드를 만들어라!
class CTest
{
const int iNum;
void Add(void) const; // const 메서드
};
const CTest Test; // const 객체
Test. Add(); // const 객체는 const 메서드만 허용!
C++에서는 const 덕분에 보안은 강화되었지만
const를 잘 이해하지 못한다면 귀찮은 존재가 됨…
http://blog.naver.com/ruvendix
mutable 예약어
class CTest
{
mutable int iNum;
void Add(void) const
{
iNum = 100; // 변경 가능!
}
};
const 메서드에서도 필드를 자유롭게 변경하고 싶으면
mutable을 사용하라!
http://blog.naver.com/ruvendix

More Related Content

What's hot

M5 6 1
M5 6 1M5 6 1
M5 6 1nexthw
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinDong Chan Shin
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2현찬 양
 
모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디quxn6
 
자바와 사용하기2
자바와 사용하기2자바와 사용하기2
자바와 사용하기2destinycs
 
Geveloper 160816
Geveloper 160816Geveloper 160816
Geveloper 160816Nyeong Ahn
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4현찬 양
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3현찬 양
 
M1 2 1
M1 2 1M1 2 1
M1 2 1nexthw
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터Dong Chan Shin
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1현찬 양
 
팩토리 메소드 패턴과 추상 팩토리 패턴
팩토리 메소드 패턴과 추상 팩토리 패턴팩토리 메소드 패턴과 추상 팩토리 패턴
팩토리 메소드 패턴과 추상 팩토리 패턴GeniusYG
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전주항 박
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunhoJunho Kim
 

What's hot (20)

M5 6 1
M5 6 1M5 6 1
M5 6 1
 
Start groovy
Start groovyStart groovy
Start groovy
 
More effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshinMore effective c++ chapter1 2_dcshin
More effective c++ chapter1 2_dcshin
 
More effective c++ 2
More effective c++ 2More effective c++ 2
More effective c++ 2
 
모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디모어 이펙티브 c++ 1,2장 스터디
모어 이펙티브 c++ 1,2장 스터디
 
자바와 사용하기2
자바와 사용하기2자바와 사용하기2
자바와 사용하기2
 
Geveloper 160816
Geveloper 160816Geveloper 160816
Geveloper 160816
 
Effective c++ 4
Effective c++ 4Effective c++ 4
Effective c++ 4
 
연산자
연산자연산자
연산자
 
포인터
포인터포인터
포인터
 
More effective c++ 3
More effective c++ 3More effective c++ 3
More effective c++ 3
 
M1 2 1
M1 2 1M1 2 1
M1 2 1
 
5 6 1
5 6 15 6 1
5 6 1
 
ES6-01
ES6-01ES6-01
ES6-01
 
More effective c++ 항목30부터
More effective c++ 항목30부터More effective c++ 항목30부터
More effective c++ 항목30부터
 
More effective c++ 1
More effective c++ 1More effective c++ 1
More effective c++ 1
 
팩토리 메소드 패턴과 추상 팩토리 패턴
팩토리 메소드 패턴과 추상 팩토리 패턴팩토리 메소드 패턴과 추상 팩토리 패턴
팩토리 메소드 패턴과 추상 팩토리 패턴
 
포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전포스트모템디버깅과 프로세스 덤프 실전
포스트모템디버깅과 프로세스 덤프 실전
 
javascript01
javascript01javascript01
javascript01
 
Docker registry swift_junojunho
Docker registry swift_junojunhoDocker registry swift_junojunho
Docker registry swift_junojunho
 

Viewers also liked

클래스의 기초 지식
클래스의 기초 지식클래스의 기초 지식
클래스의 기초 지식. Ruvendix
 
ShipFusion - What is efulfillment?
ShipFusion - What is efulfillment?ShipFusion - What is efulfillment?
ShipFusion - What is efulfillment?shipfusion
 
표준 입출력
표준 입출력표준 입출력
표준 입출력. Ruvendix
 
Murmuration 003 - Get Inspired
Murmuration 003 - Get InspiredMurmuration 003 - Get Inspired
Murmuration 003 - Get InspiredShoot
 
Gucci by Meena Kukan
Gucci by Meena KukanGucci by Meena Kukan
Gucci by Meena KukanMeena Kukan
 
Oбщая теория интераций
Oбщая теория интерацийOбщая теория интераций
Oбщая теория интерацийVubuntu Vera
 

Viewers also liked (19)

형식 선정
형식 선정형식 선정
형식 선정
 
클래스의 기초 지식
클래스의 기초 지식클래스의 기초 지식
클래스의 기초 지식
 
템플릿
템플릿템플릿
템플릿
 
동적할당
동적할당동적할당
동적할당
 
배열
배열배열
배열
 
구조체
구조체구조체
구조체
 
ShipFusion - What is efulfillment?
ShipFusion - What is efulfillment?ShipFusion - What is efulfillment?
ShipFusion - What is efulfillment?
 
Budo Cup 2015 - Результаты
Budo Cup 2015 - РезультатыBudo Cup 2015 - Результаты
Budo Cup 2015 - Результаты
 
표준 입출력
표준 입출력표준 입출력
표준 입출력
 
Invitation to the Minsk Open - Sanker Cup 2016
Invitation to the Minsk Open - Sanker Cup 2016Invitation to the Minsk Open - Sanker Cup 2016
Invitation to the Minsk Open - Sanker Cup 2016
 
Zvyagel Open 2015 - победители в категориях
Zvyagel Open 2015 - победители в категорияхZvyagel Open 2015 - победители в категориях
Zvyagel Open 2015 - победители в категориях
 
Курс Pro-KARATE 2017 (темы семинаров)
Курс Pro-KARATE 2017 (темы семинаров)Курс Pro-KARATE 2017 (темы семинаров)
Курс Pro-KARATE 2017 (темы семинаров)
 
Zvyagel Open 2017 - официальные результаты
Zvyagel Open 2017 - официальные результатыZvyagel Open 2017 - официальные результаты
Zvyagel Open 2017 - официальные результаты
 
Murmuration 003 - Get Inspired
Murmuration 003 - Get InspiredMurmuration 003 - Get Inspired
Murmuration 003 - Get Inspired
 
Gucci by Meena Kukan
Gucci by Meena KukanGucci by Meena Kukan
Gucci by Meena Kukan
 
Oбщая теория интераций
Oбщая теория интерацийOбщая теория интераций
Oбщая теория интераций
 
МГЛК сезона 2016-2017 - 4-й этап - 19.03.2017 турнирные сетки
МГЛК сезона 2016-2017 - 4-й этап - 19.03.2017 турнирные сеткиМГЛК сезона 2016-2017 - 4-й этап - 19.03.2017 турнирные сетки
МГЛК сезона 2016-2017 - 4-й этап - 19.03.2017 турнирные сетки
 
Buelltin Nr.1 for the Karate World Championships 2016
Buelltin Nr.1 for the Karate World Championships 2016Buelltin Nr.1 for the Karate World Championships 2016
Buelltin Nr.1 for the Karate World Championships 2016
 
Itinerario campeonato copa alcalde karate
Itinerario campeonato copa alcalde karateItinerario campeonato copa alcalde karate
Itinerario campeonato copa alcalde karate
 

클래스의 추가 지식