ݺߣ

ݺߣShare a Scribd company logo
쪼꼬두유
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
생성자는 해당 클래스의 인스턴스를 초기화하는 일종의 멤버 함수입니다.
전위 형식에서는 식 계산에서 값이 사용되기 전에 증가 또는 감소가 발생하므로 식
값은 피연산자 값과 다릅니다.
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
컴파일러에게 지정된 변환을 사용하여 암시적 변환을 수행할 수 없도록 지시합니다.
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
class B {};
class D : public B {};
void f(B* pb, D* pd)
{
D* pd2 =
static_cast<D*>(pb);
B* pb2 =
static_cast<B*>(pd);
}
class B {};
class D : public B {};
void f(B* pb, D* pd)
{
D* pd2 =
static_cast<D*>(pb);
B* pb2 =
static_cast<B*>(pd);
}
class B { };
class C : public B { };
class D : public C { };
void f(D* pd) {
C* pc =
dynamic_cast<C*>(pd);
B* pb =
dynamic_cast<B*>(pd);
}
class B {};
class D : public B {};
void f(B* pb, D* pd)
{
D* pd2 =
static_cast<D*>(pb);
B* pb2 =
static_cast<B*>(pd);
}
class B { };
class C : public B { };
class D : public C { };
void f(D* pd) {
C* pc =
dynamic_cast<C*>(pd);
B* pb =
dynamic_cast<B*>(pd);
}
const int value = 100;
int i = const_cast<int>
(value);
1. reinterpret_cast
2. (struct 구조체)
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
클래스의 각 멤버를 생성자에서 초기화 할 때 생성자 뒤에 콜론연산자(:)를 사용해서
객체의 멤버를 초기화
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
하나의 문이 예상되는 곳에서 두 문을 그룹화
쉼표 연산자는 왼쪽에서 오른쪽으로 결합
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"
int main()
{
const char *str1 = "42";
int num1 = std::atoi(str1);
}
2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"

More Related Content

2016 페차쿠차 "cppcheck, effective c++과 함께하는 bts"

  • 4. 생성자는 해당 클래스의 인스턴스를 초기화하는 일종의 멤버 함수입니다.
  • 5. 전위 형식에서는 식 계산에서 값이 사용되기 전에 증가 또는 감소가 발생하므로 식 값은 피연산자 값과 다릅니다.
  • 7. 컴파일러에게 지정된 변환을 사용하여 암시적 변환을 수행할 수 없도록 지시합니다.
  • 9. class B {}; class D : public B {}; void f(B* pb, D* pd) { D* pd2 = static_cast<D*>(pb); B* pb2 = static_cast<B*>(pd); }
  • 10. class B {}; class D : public B {}; void f(B* pb, D* pd) { D* pd2 = static_cast<D*>(pb); B* pb2 = static_cast<B*>(pd); } class B { }; class C : public B { }; class D : public C { }; void f(D* pd) { C* pc = dynamic_cast<C*>(pd); B* pb = dynamic_cast<B*>(pd); }
  • 11. class B {}; class D : public B {}; void f(B* pb, D* pd) { D* pd2 = static_cast<D*>(pb); B* pb2 = static_cast<B*>(pd); } class B { }; class C : public B { }; class D : public C { }; void f(D* pd) { C* pc = dynamic_cast<C*>(pd); B* pb = dynamic_cast<B*>(pd); } const int value = 100; int i = const_cast<int> (value);
  • 15. 클래스의 각 멤버를 생성자에서 초기화 할 때 생성자 뒤에 콜론연산자(:)를 사용해서 객체의 멤버를 초기화
  • 17. 하나의 문이 예상되는 곳에서 두 문을 그룹화 쉼표 연산자는 왼쪽에서 오른쪽으로 결합
  • 19. int main() { const char *str1 = "42"; int num1 = std::atoi(str1); }