티스토리 뷰
□소멸자
-객체가 소멸되는 시점에서 자동으로 호출되는 함수
※특징
객체가 사라질 때 마무리 작업을 위함.
소멸자 함수의 이름은 클래스 이름 앞에 ~를 붙인다.
리턴형X
중복 불가능함.
선언하지 않으면 자동으로 기본 소멸자 생성
class Circle{
...
Circle();
Circle(itn r);
...
~Circle(); //소멸자 선언
};
Circle::~Circle(){ //소멸자 함수 구현
....
}
□생성자/소멸자 실행 순서
지역 객체 - 함수 내에 선언되고, 함수가 종료되면 소멸
전역 객체 - 함수 바깥에 선언되고, 프로그램이 종료되면 소멸
객체 생성 순서
지역 객체 - 함수가 호출되는 순간에 순서대로 생성
전역 객체 - 프로그램에 선언된 순서대로 생성
객체 소멸 순서
지역 객체 - 함수가 종료하면, 지역 객체가 생성된 순서의 역순으로 소멸
전역 객체 - 프로그램이 종료하면, 전역 객체가 생성된 순서의 역순으로 소멸
#include<iostream>
using namespace std;
class Circle{
public:
int radius;
Circle();
Circle(int r);
~Circle();
};
Circle::Circle(){
radius = 1;
cout << "반지름 " << radius <<" 원 생성" <<endl;
}
Circle::Circle(int r){
radius = r;
cout << "반지름 " << radius <<" 원 생성" <<endl;
}
Circle globalDN(1000);
Circle globalPZ(2000);
int main(){
Circle mainDN;
Circle mainPZ(20);
}
반지름 1000 원 생성
반지름 2000 원 생성
반지름 1 원 생성
반지름 20 원 생성
반지름 20 원 소멸 //소멸자 순서 주의
반지름 1 원 소멸
반지름 2000 원 소멸
반지름 1000 원 소멸
□접근 지정자
private
동일한 클래스의 멤버 함수에만 제한함. 디폴트 접근 지정자
public
모든 다른 클래스에 허용.
protected
클래스 자신과 상속받은 자식 클래스에만 허용
□오버헤드
프로그램이 함수를 호출하면
바로 함수의 코드를 따라가는게 아니라
위 그림의 과정을 거친 후 코드를 따라가게 된다.
따라서 크기가 작은 함수를 호출하면
위 과정이 코드를 따라가는 과정보다 길어져
오버헤드가 발생한다.
□인라인 함수
-inline키워드로 선언된 함수
인라인 함수를 호출하는 곳에 인라인 함수 코드를 확장 삽입.
인라인 키워드가 붙은 함수를 호출하면
함수의 코드를 삽입해 실행.
□자동 인라인 함수
클래스 선언부에 선언된 함수에 직접 구현을 해주면
inline 키워드를 쓰지않아도 자동으로 인라인으로 구분된다.
class Circle{
private:
int radius;
public:
Circle(){ //자동 인라인 함수
radius = 1;
}
Circle(int r);
double getArea(){ //자동 인라인 함수
return 3.14*radius*radius;
}
};
□구조체
상속,멤버,접근 지정 등 모든 것이 클래스와 동일
단, 디폴드 접근 지정이 다름
구조체 - public
클래스 - private
단지 C와 호환을 할 때만 사용
객체 생성 시
struct structName stObj; //C의 구조체 객체 생성
structName stObj; //C++의 구조체 객체 생성
구조체 선언
#include <iostream>
using namespace std;
struct StructCircle{ //구조체 선언
private:
int radius;
public:
StructCircle(int r){radius = r;} //구조체의 생성자
};
int main(){
StructCircle waffle(3); //객체 생성
}
'c++' 카테고리의 다른 글
C++ this,string 객체,string 배열 (0) | 2020.07.06 |
---|---|
C++ 객체포인터,객체 배열, 동적 할당 (0) | 2020.07.03 |
C++ 클래스와 객체,생성자 (0) | 2020.07.01 |
C++ main함수,C++ 입력,출력(cout,cin,getline) (0) | 2020.07.01 |
c++언어의 특징 (0) | 2020.07.01 |
- Total
- Today
- Yesterday
- 크로스 엔트로피
- 차량용 이더넷
- json2html
- problem statement
- 논문 잘 쓰는법
- AVTP
- PCA
- one-to-many
- 머신러닝
- Ethernet
- 이상탐지
- 로지스틱회귀
- automotive
- porks
- HTML
- 차량 네트워크
- CAN-FD
- 딥러닝
- many-to-one
- Python
- AE
- 케라스
- 단순선형회귀
- automotive ethernet
- cuckoo
- SOME/IP
- SVM
- AVB
- many-to-many
- 회귀
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |