Home - 0421cjy/cplusplus GitHub Wiki
CODING CONVENTION For C++
-
ํจ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ค๋ฐ๊ฟํ ์ ,๋ ๋ฌด์กฐ๊ฑด ํ๋ผ๋ฏธํฐ ๋ค์ ๋ถ์ธ๋ค. ๋จ ์์ฑ์ ์ด๊ธฐํ์์ : ์ ์ง์ ๋ง์ถ๊ธฐ ์ํด์ ,๋ฅผ ์์๋ค๊ฐ ๋ถ์ด๊ณ ์ค๋ฐ๊ฟ์ ํ๋ค. ๊ทธ๋๋ฉด ๋ฑ ์ค์ด ๋ง๋๋ค.
-
๋ณ์๋ ์ฌ์ฉํ๋ ์ชฝ๊ณผ ๋ฌด์กฐ๊ฑด ๊ฐ๊น์ด๊ฒ ์ข๋ค.
-
ํด๋์ค์ ์ ์๋ public, protected, private ์์ผ๋ก ์ ์ํฉ๋๋ค. ๋น ์น์ ์ ์๋ตํฉ๋๋ค. ๊ฐ๊ฐ์ ์น์ ์์์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ธ๋ค์ ๋น์ทํ ์ข ๋ฅ๋ก ๊ทธ๋ฃน ์ง๋๊ฑธ ์ ํธํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋์ ์์๋ฅผ ๋ฐ๋ฆ ๋๋ค. type (typedef, using, nested structs ์ classes), ์์๋ค, factory ํจ์, ์์ฑ์, ํ ๋น ์ฐ์ฐ์, ์๋ฉธ์, ๋ชจ๋ ๋ค๋ฅธ ํจ์๋ค, data ๋ฉค๋ฒ๋ค
class TestOrder
{
public :
typedef std::unordered_map<int, int*> testType;
using self_practice;
enum class enumClass
{
one = 1,
two = 2,
};
static const int object;
TestOrder() {}
virtual ~TestOrder() {}
protected:
void testProtectedFunc() {}
private:
void testPrivateFunc() {}
public:
int publicTestVariable;
protected:
int protectedTestVariable;
private:
int privateTestVariable;
};
์์น ์์ ๊ท์น์งํฉ ์ค์๋ฅผ ํผํ์ ์ต์ IDE(ํตํฉ๊ฐ๋ฐํ๊ฒฝ)๋ฅผ ๋ฏฟ์ VisualStudio 2015 ๊ธฐ๋ณธ์์์ ์ฌ์ฉํ์ ์์ ์์คํ์ผ
์ธ์ฝ๋ฉ cp949 ์ค๋ CR-LF ๋ค์ฌ์ฐ๊ธฐ
Allman style ํญ ์ฌ์ฉ ํญ ์ฌ์ด์ฆ 4 ๋ค์ด๋ฐ
๋ณ์๋ camelCase ๊ทธ ์ธ PascalCase ๋งคํฌ๋ก๋ SCREAMING_SNAKE_CASE ์ ๋์ด ๋ฉค๋ฒ๋ณ์ m_ ์ด๊ฑฐํ E #include
ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ใโช ์ฌ์ฉ ๋๋จธ์ง๋ " " ์ฌ์ฉ ์ ์ด๊ตฌ๋ฌธ
๋๋๋ก ๊ธ์ ํ ์ฌ์ฉ ๋ถ๋ฆฐ๊ฐ์ ๋ฌต์์ ๋น๊ต ๋ถ๋ฆฐ๊ฐ ์ด์ธ๋ ๋ช ์์ ๋น๊ต ์๋คํ๊ธฐ๋ฒ์ ํผํ๋ค ์กฐ๊ฑด์ ์ ํจ์๋ ์ฐ๋ณ์ ๋๋ค ๋ถ๋ฑํธ์ ๊ฒฝ์ฐ ์์ ๊ฐ์ ์ข๋ณ์, ํฐ ๊ฐ์ ์ฐ๋ณ์ ๋๋ค. if ๊ตฌ๋ฌธ์ด ์งง๋ค๋ฉด if๋ฌธ๊ณผ ๊ฐ์ ์ค์ ํ์ค๋ก ์ธ ์ ์๋ค. if ๊ตฌ๋ฌธ์ด if๋ฌธ๊ณผ ๋ค๋ฅธ ์ค์ ์๋ค๋ฉด, ํ์ค์ง๋ฆฌ ๊ตฌ๋ฌธ์ด๋ผ๋ ๋ฐ๋์ {} ๋ธ๋ญ์ผ๋ก ๋ฌถ์ด์ผํ๋ค. ํค๋ ๋ ์ด์์ #pragma once
#include "์ธ๋2 ํ๋ก์ ํธ.h" #include "์ ์ผ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.h" #include ใC ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ.hโช #include ใC++ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌโช
// ํด๋นํ์ผ์์ ์ฌ์ฉํ ๋งคํฌ๋ก์ ์ธ
// ์ ์ญ ์ ๋ฐฉ์ ์ธ // ์ธ๋ถ๋ค์์คํ์ด์ค ์ ๋ฐฉ์ ์ธ
namespace LM { // ์ ๋ฐฉ์ ์ธ
class C : public B
{
// using
// inner-class
private:
// ๋ฉค๋ฒ๋ณ์
public:
// ๊ณต๊ฐ ๋ฉ์๋
protected:
// ๋ณดํธ ๋ฉ์๋
private:
// ๋น๊ณต๊ฐ ๋ฉ์๋
};
// ํด๋์ค ์ธ๋ถ์ ์ธํจ์ (์: ์ฐ์ฐ์์ค๋ฒ๋ก๋ฉ)
// ์ธ๋ถ์์ ์ฌ์ฉํ ํด๋์ค ๋งคํฌ๋ก์ ์ธ
// extern ์ ์ธ
}
C++11 ๋๋ค ์ฌ์ฉํ์ง ์๋๋ค Store Procedure ํ ์คํธ/์์ ์ ์ฅํ๋ก์์ ์ ๊ฒฝ์ฐ ๋ณธ์ธ ์๋ฌธ์ด๋ฆ์ ์ ๋์ด๋ก ๋ถ์ ๋๋ค. spFoo_sunghoon
ํจ์ ๋จ์์ ์๋ฌ ์ฒ๋ฆฌ์ ASSERT ์ด๋ป๊ฒ ์ฌ์ฉํ ๊ฒ์ธ๊ฐ?
ํด๋ผ -> ์๋ฒ๋ก ๋ณด๋ด์ค๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฒ์ฌํ๋ค. ์ด๋ ํดํน์ ์ํ์ด๋ ๋ฐ์ดํฐ ๊นจ์ง์ด ๋ฐ์ ์ด๋๋ ์๋ฌ ์ฒ๋ฆฌํ์. ์ถฉ๋ถํ ๊ฐ๋ฅํ๋ค. 0 ~ 8 ๊น์ง์ ํ์ ์ด ๋ค์ด์์ผํ๋๋ฐ ๊ทธ ์ด์ธ์ ๊ฐ์ด ๋ค์ด์๋ค. ์ด๊ฑด ๋ก์ง์์ ๋ฌธ์ ๊ฐ ๋ถ๋ช ํ๋ค. ๋ค์ด์ฌ ์ ์๋ ๊ฐ์ด๋ค. ๊ทธ๋ฌ๋ฉด ASSERT