클래스의 생성자


-1

N 요소의 C/C++ 배열에는 상한으로 N-1의 하한이 0부터 아래 첨자까지 있습니다. Pascal과 같은 다른 언어에서는 사용자가 하한값과 상한값을 지정하여 (상한 - 하한 + 1) 요소의 배열을 만들 수 있습니다.

질문 : 사용자가 두 가지 형식의 배열을 지정할 수있는 C++의 클래스 "Array"를 만듭니다. 배열의 각 요소는 부동 소수점 값이됩니다. 이 수업은 숨어있는 정보의 양을 극대화하는 것입니다. array.h 헤더 파일과 array.cpp 소스 파일에 들어가는 정보를 명확하게 보여줍니다. 헤더 파일은 헤더 파일 정보의 사본이 소스 코드 파일에 존재하지 않아야 함을 보장해야합니다.

아무도 도와 줄 수 있습니까? 감사.

  0

어떤 부분에 도움이 필요합니까? 그 임무는 나에게 꽤 분명하게 들린다. 22 feb. 092009-02-22 06:59:10

  0

귀하의 질문에 숙제가 명시되어 있어야합니다. 또한 질문이 명확해야합니다. 도움이 필요한 것은 무엇입니까, 과제를 이해하지 못합니까? 22 feb. 092009-02-22 07:00:15

  0

당신이 지금까지 가지고있는 것을 우리에게 보여 주면 어떨지 약간의 안내를 받게 될 것입니다. 22 feb. 092009-02-22 07:01:09

  0

좋은 C++ 코드는 아니지만 시작일 것입니다 : http://www.ddj.com/cpp/184403457 22 feb. 092009-02-22 07:03:15

  0

@libt : 그건 반드시 좋은 일이 아니야. 나는 그것을 좋아한다. 22 feb. 092009-02-22 07:15:50

  0

dmckee, 당신은 코드가 마음에 들거나 C++을 파스칼처럼 생각하고 있다는 것을 의미합니까? 어쨌든 나는 일반적인 생각을 좋아하지만 코드를 너무 좋아하지 않는다. 하지만 난 알 수없는 (구글)에 도움이 될 것 같아요 :) 22 feb. 092009-02-22 07:31:08

  0

그 코드는, 관용적 인 구피에 더하여, OP의 내 견적이 생산할 수있는 것보다 상당히 세련된 것 같습니다. 진짜 문제가 생길 기회를 손에 쥐고 ... 22 feb. 092009-02-22 16:29:16

2

스택에 모든 질문을 푸시합니다. 그들을 터지는

...

는 사람이 좀 도와 줄래?

보겠습니다.

헤더 파일은 헤더 파일 정보의 여러 복사본이 소스 코드 파일에 존재하지 않아야 함을 보장해야합니다.

들었어? 또는 #pragma? 그것은 두 가지 해결책이지만 각각의 장점과 단점을 파악해야합니다.

헤더 파일 array.h 및 소스 파일 array.cpp에 들어가는 정보를 명확하게 보여줍니다.

C 또는 C++을 사용한 프로그래밍에 익숙합니까?

클래스는 정보 숨김을 최대화하는 것입니다.

캡슐화. C++/OOD의 모든 표준 텍스트가 도움이 될 것입니다. 아이디어는 인터페이스를 가지고 주변에 코드를 작성하는 것입니다.

어레이의 각 요소의 부동 소수점 값

확실 것이다 왜?

두 가지 형식의 배열을 모두 지정할 수있는 C++의 클래스 "Array"를 만듭니다.

확실히. 다차원 배열도 필요합니까? 이 양식들 사이에서 번역을하면됩니다. 배열 클래스를 사용할 때 사용자가 사용하기를 기대하는 구문은 무엇입니까? 예 : 인기있는 형식은 i = 0, 1, ... N-1 인 float_array [i]에서 연산자 []를 사용하여 배열 요소에 액세스하는 것입니다.

class Array { 
    public: 
    explicit Array(size_t n); //default array, C-style indexing 
    Array(size_t begin, size_t end); //Pascal-style indexing 
    private: 
    float *_a; 
}; 

이제 시작하겠습니다. 더 궁금한 점이 있으면 알려주십시오.


0

위로 가기 위험에 처해있는 나는 템플릿 기반의 솔루션으로 갈 것입니다. 훨씬 더 우아합니다. 이 같은 것 :

template<int START, int END> 
class Array 
{ 
    float operator[](int i) { ... } 
... 
private: 
    float m_data[END - START]; 

};