티스토리 뷰
c++ class 에서 생성자를 만들어 두면, 필요할 때 자동으로 형 변환을 시키는데, 이를 막는것이 explicit 키워드이다
아래 예시를 보자
- Event 클래스 대신 string을 넣었지만 자동으로 형변환이 되서 잘 실행된다
#include <iostream>
#include <string>
class Event {
public:
Event(std::string name) : name_(name) {};
std::string getName() { return name_; };
private:
std::string name_;
};
std::string getEventName(Event e) {
return e.getName();
}
int main() {
std::string str = "print my name\n";
std::cout << getEventName(str);
// result
// print my name
}
- explicit 키워드를 사용하면 자동 형 변환을 막아준다
#include <iostream>
#include <string>
class Event {
public:
explicit Event(std::string name) : name_(name) {};
std::string getName() { return name_; };
private:
std::string name_;
};
std::string getEventName(Event e) {
return e.getName();
}
int main() {
std::string str = "print my name\n";
std::cout << getEventName(str);
// result
// explicit.cpp:18:18: error: no matching function
// for call to 'getEventName' std::cout << getEventName(str);
}
명시적으로 선언을 한 뒤에 사용해야 할 때 explicit 키워드를 사용하도록 하자
'개발 > 일상' 카테고리의 다른 글
백준 학교 랭킹 30위 달성 (2) | 2019.08.24 |
---|---|
boost shared_from_this() bad_weak_ptr Exception 문제 해결 (0) | 2019.08.13 |
boost::thread bind object (0) | 2019.08.07 |
Boost noncopyable (0) | 2019.07.19 |
개발 블로그 새로 시작!! (0) | 2019.07.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- shared_from_this
- boost
- ad skip
- Quest2
- 코어 남기기
- vrpit
- chrome-extension
- Visual Studio
- SuffixArray
- 잘못된 빨간줄
- Reciprocal n-body Collision Avoidance
- print shared_ptr class member variable
- 영상 픽셀화 하기
- Obstacle Avoidance
- 클래스 맴버 변수 출력하기
- 에러 위치 찾기
- set value
- 면접
- red underline
- 우리는 vr핏이라고 부릅니다
- vr핏
- it's called a vrpit
- hole-punching
- cockroach db
- C++
- mysql
- 봄날에 스케치
- 카카오
- RVO
- Golang
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함