Home - 0421cjy/cplusplus GitHub Wiki

CODING CONVENTION For C++

  1. ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ค„๋ฐ”๊ฟˆํ• ์‹œ ,๋Š” ๋ฌด์กฐ๊ฑด ํŒŒ๋ผ๋ฏธํ„ฐ ๋’ค์— ๋ถ™์ธ๋‹ค. ๋‹จ ์ƒ์„ฑ์ž ์ดˆ๊ธฐํ™”์—์„  : ์™€ ์ง์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ ,๋ฅผ ์•ž์—๋‹ค๊ฐ€ ๋ถ™์ด๊ณ  ์ค„๋ฐ”๊ฟˆ์„ ํ•œ๋‹ค. ๊ทธ๋ž˜๋ฉด ๋”ฑ ์ค„์ด ๋งž๋Š”๋‹ค.

  2. ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉํ•˜๋Š” ์ชฝ๊ณผ ๋ฌด์กฐ๊ฑด ๊ฐ€๊นŒ์šด๊ฒŒ ์ข‹๋‹ค.

  3. ํด๋ž˜์Šค์˜ ์ •์˜๋Š” public, protected, private ์ˆœ์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ์„น์…˜์€ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ ์„น์…˜ ์•ˆ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์„ ์–ธ๋“ค์€ ๋น„์Šทํ•œ ์ข…๋ฅ˜๋กœ ๊ทธ๋ฃน ์ง“๋Š”๊ฑธ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์•„๋ž˜์˜ ์ˆœ์„œ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. type (typedef, using, nested structs ์™€ classes), ์ƒ์ˆ˜๋“ค, factory ํ•จ์ˆ˜, ์ƒ์„ฑ์ž, ํ• ๋‹น ์—ฐ์‚ฐ์ž, ์†Œ๋ฉธ์ž, ๋ชจ๋“  ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค, data ๋ฉค๋ฒ„๋“ค

https://www.slideshare.net/Ruvendix1/google-coding-guide?qid=02c108d8-68f2-49c4-b607-74993a292885&v=&b=&from_search=7

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

โš ๏ธ **GitHub.com Fallback** โš ๏ธ