2012-11-07 4 views
0

이 하나의 클래스는 int healthint level과 같은 변수 속성 만 있지만 protected이지만 메소드는 없습니다. 이 나쁜 습관인가? 나는 이것을 세이브 게임 기능에 사용하고 있으며 변수를 사용할 필요가 있지만 메서드가 필요하지 않습니다. 파일은 다음과 같이 :C++에서 변수 속성 만있는 클래스를 만드는 것은 나쁜 습관입니까?

Human.h :

// Human.h - Johnny P 

#pragma once 

namespace SharpEngine { 
    class Human { 
    protected: 
     std::string name; 
     int level; 
     int health; 
     int defense; 
     int strength; 
     int experience; 
     int money; 
     int inventory[10]; 
    }; 
} 

Human.cpp

// Human.cpp - Johnny P 

#include <string> 
#include "Human.h" 
+0

구조체를 사용하지 않는 이유는 무엇입니까? –

+2

@MaxE. 왜 수업을 사용하지 않습니까? –

+2

머리 글자 어는 POD = plain old data이며, 보통'class'보다는'struct'를 사용합니다. – dmckee

답변

2

음, "나쁜 습관"은 다소 부담스러운 용어입니다.

대신에 클래스/구조체가 데이터를 포함하기위한 공통 패턴이 "덤 (Dumb) 데이터"라고 가정 해 보겠습니다. 이것은 C 호환 구조체 인 "Plain Old Data"(POD)와 완전히 같지 않습니다.

그런데, "보호 된"을 사용하는 것은 덤 (Dumb) 데이터 패턴의 전형이 아닙니다. "보호 된"을 사용함에있어서 당신은 그로부터 파생된다는 것을 암시하는 바이며, 적어도 가상 소멸자를 의미합니다.

+0

'보호 된'사용 의도에 대한 설명은 +1. – Aesthete

+0

나는 그걸 수업 시간으로두고 갈거야. 그렇게하는 것이 더 합리적입니다. 감사! – Tux

0

헤더 전용 유형 괜찮, 구현을 가지지없는 "실행 파일을"도랑.

쓸데없는 파일은 나쁜 습관입니다.

관련 문제