1. const로 정의된 멤버 함수가 여타 멤버 변수의 값을 변경하려 할 때 컴파일러가 에러를 발생하도록 한다. 2. const로 선언된 객체는 클래스에서 const로 정의된 함수만 호출할 수 있다. 어떤 함수가 여타 멤버 변수를 전혀 변경시키지 않더라도 const로 선언돼 있지 않으면 const 객체에서 호출할 수 없다. 1. 구현 시스템은 객체를 담을만한 메모리를 할당한다. 2. 생성자의 초기 설정자(constructor initializer) 목록에 의해 객체들을 초기화한다. Object() : memVar1(0), memVar2(0) {} // : 과 { 사이에 나오는 member-name(value)가 초기 설정자이다. 3. 생성자 본체를 실행한다.
마구잡이 실습하기 #include #include #include #include #include using namespace std; class Num { private: int m_num; public: Num() { m_num=0; } Num(int n) : m_num(n) {} Num operator+(const Num& n) { return Num(m_num + n.m_num); } Num& operator=(const Num& n) { m_num = n.m_num; return *this; } int getNum() const { return m_num; } friend ostream& operator
- std::vector의 erase 함수는 인덱스에 대해 동작하지 않는다. (그런 멤버 함수가 없다.) cf.) Java의 Vector나 ArrayList에는 인덱스 접근을 허용하는 remove 함수가 있다. // 아래와 같이 사용할 수 없다. std::vector vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.erase(1); // 에러! vec.erase(vec.begin() + 1); // 이렇게 사용해야 한다. 컨테이너 중에는 임의 접근을 위해 인덱스를 아예 지원하지 않는 것도 있다. 라이브러리가 모든 컨테이너에 대해서 동일한 방식으로 동작하도록 하기 위해서는 erase의 한 가지 형태만을 제공하는 것이 더 유용하다고 한다. - ..
- 함수의 매개변수 설정 시, vector나 string처럼 복사할 때 시간이 많이 걸리는 경우에 대해서는 참조해서(call by reference) 사용하도록 한다. func(const object& obj) // 이런 식으로.. 그러나 int나 double과 같은 내장 타입에 대해서는 그렇게까지 할 필요는 없다. 기본형은 값으로 전달(call by value)하여 복사하더라도 시간이 많이 걸리지 않기 때문이다. - std::string이나 std::vector 등의 크기(size)를 저장할 때 int를 사용하기 보다는 시스템 의존적인(system-dependent) ::size_type을 사용하도록 한다. // size_type들은 unsigned 정수형이다 string::size_type str_l..
- Total
- Today
- Yesterday
- matrix multiplication
- structure
- 볼륨 낮춤
- 볼륨 조절
- C++
- how to solve it
- tensorflow
- volume dial
- cython
- Item 9
- dll
- destructor
- Python
- TCGA
- QPrinter.A4
- ctypes
- 이상한 문자
- Visual C++
- CanDrA
- 설치
- QT
- pandas
- MSVC++
- PyQt
- TensorBoard
- GSX 1200 pro
- GSX 1000 pro
- QPrinter.Letter
- armadillo c++
- Accelerated C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |