반응형
클래스 파일 분할
일반 함수와 같이 클래스도
멤버 함수를 선언과 구현으로 분리하는 것이 일반적이다.
템플릿과 같이
반드시 헤더 파일에 멤버 함수 구현부도 같이 있어야 하는 경우도 있다.
하나의 파일에서 구현
[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 추가
[Blog.cpp]에서 함수명 앞에 「Blog::」 와 같이 Namespace 추가
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] constexpr function (1) | 2025.01.29 |
---|---|
[C++] member initializer list (1) | 2025.01.29 |
[C++] lower_bound, upper_bound 사용해보기 (1) | 2025.01.27 |
[C++] rvalue reference (4) | 2025.01.27 |
[C++] constexpr 키워드 (2) | 2025.01.26 |
댓글