클래스 파일 분할
멤버 함수를 선언과 구현으로 분리하는 것이 일반적이다.
템플릿과 같이
반드시 헤더 파일에 멤버 함수 구현부도 같이 있어야 하는 경우도 있다.
[C/C++] [전처리기] 헤더파일(.h) 만들어서 include 하기
헤더파일(.h) 만들어서 include 하기 헤더파일(.h)에는 함수 원형이나 클래스만 선언한다.내부 구현은 별도의 파일에서 구현한다. [Calc.h]int add(int A, int B); [Calc.cpp]#include "Calc.h"int add(int a, int b)
zoosso.tistory.com
하나의 파일에서 구현
[main.cpp]
#include <iostream>
#include <string>
class Blog
{
std::string url;
int year;
public:
Blog(const std::string& u, int y)
{
url = u;
year = y;
}
void setYear(int y)
{
year = y;
}
};
int main()
{
Blog harbang ("zoosso.tistory", 2025);
harbang.setYear(2026);
}
파일 분리 Version
[Blog.h]
#pragma once
#include <string>
class Blog
{
std::string url;
int year;
public:
Blog(const std::string& u, int y);
void setYear(int y);
};
[Blog.cpp]
#include "Blog.h"
Blog::Blog(const std::string& u, int y)
{
url = u;
year = y;
}
void Blog::setYear(int y)
{
year = y;
}
[main.cpp]
#include "Blog.h"
int main()
{
Blog harbang("zoosso.tistory", 2025);
harbang.setYear(2026);
}
[Blog.h]에서 중복 include 막기 위해 #prgam once 추가
[C/C++] Header Guard 활용
여러 파일에서 특정 헤더 파일을 #include 할 수 있다.이 경우 헤더파일이 중복 컴파일되어 에러 발생하게 된다. 그렇기에 모든 header 파일은 여러 번 포함되는 것을 방지하기 위해header guard를 가지
zoosso.tistory.com
[Blog.cpp]에서 함수명 앞에 「Blog::」 와 같이 Namespace 추가
[C++] 네임스페이스(namespace) 활용
『 :: 』 기호는 Scope Operator로 "범위지정 연산자" 라고 한다.(네임스페이스 지정할 때 사용하는 연산자)#include namespace A{ void Print() { printf("a...\n"); }}namespace B{ void Print();}int main(){ A::Print(); B::Print();}
zoosso.tistory.com
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] 복사 생성자 (Copy Constructor)란? (3) | 2025.02.04 |
---|---|
[C++] default member initializer (1) | 2025.02.02 |
[C++] constexpr function (1) | 2025.01.29 |
[C++] member initializer list (1) | 2025.01.29 |
[C++] lower_bound, upper_bound 사용해보기 (1) | 2025.01.27 |
댓글