티스토리 뷰
728x90
직접 정의한 헤더파일을 사용하는 연결리스트 구현 : https://o0oheamao0o.tistory.com/71
우리가 헤더파일을 사용한다는 것은 헤더파일 안에 있는 변수, 구조체, 클래스 등을 사용하기 위함이다.
대충 구조가 이런형태일 것이다.
// 헤더파일 .h
namespace [name]{
변수1
변수2
구조체
클래스{
변수3
함수1
함수2
...
};
...
}
기본적으로 네임스페이스 안에 있는 모든 변수 , 구조체 , 클래스 등은 [네임스페이스 이름]:: [해당 객체 이름] 을 통해 사용가능하다.
//head.h
namespace SampleNamespace{
int a;
int b;
struct Node{ ... };
class SampleClass{ ... };
}
//test.cpp
#include "head.h"
int main(){
cout >> SampleNamespace::a ;
cout >> SampleNamespace::b ;
SampleNamespace::Node newNode;
SampleNamespace::SampleClass sc;
}
그 중에서 [네임스페이스 내의 > 클래스 내의 > 변수,구조체,함수 등] 은 클래스 객체 선언이 필요하다.
헤더파일이든 cpp파일이든 우리가 어떤 클래스 내의 객체를 사용하고 싶을 때는 해당 클래스 객체를 선언하고,
'.'으로 원하는 함수나 변수 등을 사용한다. 헤더파일 내의 클래스도 예외가 아니다. 우리가 헤더파일 내의 클래스를 사용하고싶으면 헤더파일을 include하고, 원하는 클래스 객체를 생성하고 '.'을 통해 사용하면된다.
Class class // 클래스 객체 선언
[class].[class내의 객체]
//ex
class TestClass{ int TestFunc( cout<< "test"; ) }
ina main(){
TestClass tc; // 클래스 객체 선언
tc.TestFunc(); // 클래스 객체 내의 함수 사용
}
그러면 [헤더파일 내의 > 네임스페이스 내의 > 클래스 내의 > 함수] 를 사용하려면 다음과 같아질 것이다.
NamespaceName::ClassName testClass; // 클래스 객체 선언
testClass.func(); // 클래스 내의 함수 사용
지금까지 내용을 예시코드를 통해 정리해보자.
// head.h
#pragma once // 헤더파일에 필요함
#include <iostream>
using namespace std;
namespace SampleNamespace{
int a;
class SampleClass{
int b;
}
}
//test.cpp
#include <iostream>
#include "Head.h"
using namespace std;
using namespace SampleNamespace;
int main(){
SampleClass sc;
cin >> sc.b; // 네임스페이스 내의 클래스 내의 변수 사용
cin >> a; // 네임스페이스 내의 변수 사용
}
// 만약 using namespace SampleNamespace; 을 미리 선언하지 않은 경우
int main(){
SampleNamespace::SampleClass sc;
cin >> sc.b; // 네임스페이스 내의 클래스 내의 변수 사용
cin >> SampleNamespace::a; // 네임스페이스 내의 변수 사용
}
728x90
'C++' 카테고리의 다른 글
[C++] std::ios_base::sync_with_stdio(false); (0) | 2022.02.16 |
---|---|
[C++] 헤더 파일과 네임스페이스 (0) | 2022.02.09 |
[C++] 배열 초기화하는 방법 (0) | 2022.02.03 |
[C++] 표준 입력함수와 입력버퍼 관리 : cin / cin.getline / getline / cin.get / cin.fail / cin.clear / cin.ignore (0) | 2022.02.03 |
[C++] 배열 초과 입력에 관하여 (0) | 2022.02.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- multiple Column
- Unity
- apt
- mac Unity vscode 자동완성
- =
- androidstudio
- Mac
- QO
- 해마코딩
- DevExpress
- Unity vs code
- Tree
- 우분투
- 트리
- Winform
- ubuntu
- apt-get
- 버추얼박스
- select
- DataSource
- VS Code
- GIT
- gridContorl
- mac unity vscode autocomplete
- ()
- flutterdoctor
- VirtualBox
- Flutter
- Query
- 컨셉때문에킹받으셨나요..죄송합니다..제가 봐도 킹받네요
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
Blog is powered by
Tistory / Designed by
Tistory