Constructeur pour la classe


-1

Les tableaux en C/C++ de N éléments ont des indices de 0 comme limite inférieure à N-1 comme limite supérieure. D'autres langages comme Pascal permettent à l'utilisateur de spécifier des valeurs d'indice inférieur et supérieur pour créer un tableau d'éléments (borne supérieure - borne inférieure + 1).

Question: Créer une classe "Array" en C++ qui permet à un utilisateur de spécifier les deux formes de tableaux. Chaque élément du tableau sera une valeur à virgule flottante. La classe est de maximiser la quantité d'informations qui se cachent. Montrez clairement les informations qui vont dans le fichier d'en-tête array.h et dans le fichier source array.cpp. Le fichier d'en-tête doit garantir que plusieurs copies des informations du fichier d'en-tête ne doivent pas exister dans un fichier de code source.

Quelqu'un peut-il m'aider avec ça? Merci.

  0

Quelle partie avez-vous besoin de l'aide? L'affectation me semble assez claire. 22 févr.. 092009-02-22 06:59:10

  0

Vous devez indiquer clairement dans votre question qu'il s'agit d'un devoir. En outre, votre question doit être plus claire. Qu'est-ce que vous avez besoin d'aide, est-ce que vous ne comprenez pas la mission? 22 févr.. 092009-02-22 07:00:15

  0

pourquoi ne pas nous montrer ce que vous avez jusqu'ici, et peut-être alors vous obtiendrez un peu de conseils 22 févr.. 092009-02-22 07:01:09

  0

ce n'est pas le bon code C++, mais un début: http://www.ddj.com/cpp/184403457 22 févr.. 092009-02-22 07:03:15

  0

@libt: Ce n'est pas forcément une bonne chose à faire ... J'aime ça. 22 févr.. 092009-02-22 07:15:50

  0

dmckee, voulez-vous dire que vous aimez le code ou l'idée d'avoir C++ être comme pascal? De toute façon, j'aime l'idée générale, mais je n'aime pas trop le code. Mais je pense qu'il peut être utile de l'inconnu (google) :) 22 févr.. 092009-02-22 07:31:08

  0

Je veux dire le code là-bas, en plus d'être maladroit idiomatique, semble un peu plus sophistiqué que mon estimation de l'OP pourrait produire. Vous lui donnez une chance d'avoir de vrais problèmes ... 22 févr.. 092009-02-22 16:29:16

2

Poussant toutes vos questions dans une pile.

les Popping ...

Quelqu'un peut-il me aider?

Voyons voir.

Le fichier d'en-tête doit garantir que plusieurs copies des informations du fichier d'en-tête ne doivent pas exister dans un fichier de code source.

Avez-vous déjà entendu parler d'une protection d'en-tête? Ou, #pragma? Ce sont deux solutions, mais il faudrait déterminer les avantages et les inconvénients de chacune d'entre elles.

Afficher clairement les informations qui vont dans le fichier d'en-tête array.h et dans le fichier source array.cpp.

Connaissez-vous la programmation en C ou C++?

La classe permet de maximiser la quantité d'informations qui se cachent.

Encapsulation. Tout texte standard sur C++/OOD vous aidera. L'idée est d'avoir des interfaces et de construire votre code autour d'eux.

Chaque élément du tableau sera une valeur à virgule flottante

Bien sûr, pourquoi pas?

Créez une classe "Array" en C++ qui permet à un utilisateur de spécifier les deux formes de tableaux.

Bien sûr. Avez-vous besoin d'avoir des tableaux multidimensionnels aussi? Tout ce que vous devez faire est de traduire entre ces formes. Quelle syntaxe attendez-vous de vos utilisateurs lors de l'utilisation de votre classe de tableau? E.g: la forme populaire est d'accéder aux éléments du tableau en utilisant l'opérateur [] comme dans float_array [i] où i = 0, 1, ... N-1.

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; 
}; 

Cela vous aidera à démarrer. Faites-nous savoir si vous avez d'autres questions.


0

risquer d'aller au-dessus avec cela, je voudrais aller avec une solution sur gabarit. C'est beaucoup plus élégant. Quelque chose comme ceci peut-être:

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

};