Je suis assez nouveau dans le C ++ et j'ai du mal sur une partie d'une mission depuis la semaine dernière.
Je sais que c'est une chose simple mais je ne peux pas comprendre la bonne façon de procéder.
Je dois créer quatre objets pour la classe (Employee) que j'ai créée et les affecter au tableau que j'ai créé
voici mon constructeur par défaut:
class Employee
{
private:
int empNumber;
string name;
double hours, payRate;
public:
Employee() // Deafault Constructor
{
empNumber = 00000;
hours = 0;
payRate = 0;
name = "Name";
}
Employee(int e_empNumber, double e_hours, double e_payRate, string e_name) // Non-Default Constructor
{
empNumber = e_empNumber;
hours = e_hours;
payRate = e_payRate;
name = e_name;
}
void getEmployeeData()
{
cout << "Employee #: " << empNumber << ' ';
cout << "Name: " << name << ' ';
cout << "Hours worked: " << hours << ' ';
cout << "Pay Rate: " << payRate << endl;
}
};
int main()
{
int Employees[4];
Employees[0] = Employee(67258, 40, 35, "Craig");
Employees[1] = Employee(25387, 30, 20, "Carol");
Employees[2] = Employee(11945, 38, 30, "Suzie");
Employees[3] = Employee(90832, 28, 40, "Sam");
system("pause");
return 0;
}
Et ma tentative de créer 4 objets avec des données différentes enregistrées dans les éléments du tableau:
int Employees[4];
Employees[0] = Employee(67258, 40, 35, "Craig");
Employees[1] = Employee(25387, 30, 20, "Carol");
Employees[2] = Employee(11945, 38, 30, "Suzie");
Employees[3] = Employee(90832, 28, 40, "Sam");
Comme je l'ai dit, fondamentalement tout neuf et J'ai cherché une tempête sur Google en vain.
Toute aide ou suggestion ou même des liens sont les bienvenus!
Voici mon code complet:
Employee() // Deafault Constructor
{
empNumber = 00000;
hours, payRate = 0;
name = "Name";
}
3 Réponses :
Faites cela pour créer et remplir les employés:
Type variable_name[size];
Ce que vous avez fait, c'est simplement créer un tableau d'entiers. Voici comment procéder:
Employe employees[4];
employees[0] = Employee(67258, 40, 35, "Craig");
employees[1] = Employee(25387, 30, 20, "Carol");
employees[2] = Employee(11945, 38, 30, "Suzie");
employees[3] = Employee(90832, 28, 40, "Sam");
Ya! Le commentaire d'Amedeus m'a aidé à le comprendre! Merci de me montrer aussi! C'est génial, ça m'a stressé toute la semaine!
Heureux que cela ait aidé. Veuillez sélectionner une réponse correcte.
Merci pour l'aide à tous! Je l'ai fait fonctionner selon les spécifications!
Voici mon code final:
#include <iostream>
using namespace std;
class Employee
{
private:
int empNumber;
string name;
double hours, payRate;
public:
Employee() // Deafault Constructor
{
empNumber = 00000;
hours = 0;
payRate = 0;
name = "Name";
}
Employee(int e_empNumber, double e_hours, double e_payRate, string e_name) // Non-Default Constructor
{
empNumber = e_empNumber;
hours = e_hours;
payRate = e_payRate;
name = e_name;
void getEmployeeData();
{
cout << "Employee #: " << empNumber << " - ";
cout << "Name: " << name << " - ";
cout << "Hours worked: " << hours << " - ";
cout << "Pay Rate: " << payRate << endl;
}
}
};
int main()
{
Employee Employees[4];
Employees[0] = Employee(67258, 40, 35, "Craig");
Employees[1] = Employee(25387, 30, 20, "Carol");
Employees[2] = Employee(11945, 38, 30, "Suzie");
Employees[3] = Employee(90832, 28, 40, "Sam");
for (int i = 0; i < 3; i++)
{
void getEmployeeData();
}
system("pause");
return 0;
}
Cela coutera les données des employés stockées dans le tableau
Très petite recommandation: Le nom de la classe est correct: Employé, mais il est recommandé d'utiliser le nom de variable Employés en commençant par une minuscule: employés. Ces petites choses vous aideront à faire la distinction entre les noms de types et les variables.
Je viens de penser à ajouter un peu plus d'informations.
Quand vous appelez ceci:
Employee Employees[4] = {
Employee(67258, 40, 35, "Craig"),
Employee(25387, 30, 20, "Carol"),
Employee(11945, 38, 30, "Suzie"),
Employee(90832, 28, 40, "Sam")
};
Le ctor par défaut sera appelé pour initialiser le tableau. Donc quatre objets sont automatiquement créés. Puis quand vous faites les affectations:
cout << "parameterized ctor" << endl;
Quatre nouveaux objets sont créés en utilisant le ctor paramétré qui remplacera les quatre créés à l'origine. Donc les originaux sont inutiles (puisqu'ils n'ont jamais été utilisés) et sont juste faits pour les déchets.
Vous pouvez vérifier ce que j'ai dit en ajoutant ce qui suit:
Par défaut ctor
cout << "default ctor" << endl;
Pour paramétrer ctor
Employees[0] = Employee(67258, 40, 35, "Craig"); Employees[1] = Employee(25387, 30, 20, "Carol"); Employees[2] = Employee(11945, 38, 30, "Suzie"); Employees[3] = Employee(90832, 28, 40, "Sam");
Si vous voulez éviter la construction multiple d'objets, vous pouvez utiliser ceci:
Employee Employees[4];
Notez que
hours, payRate = 0;affecte uniquement0à la deuxième variable,hoursreste non initialisé.Pouvez-vous nous montrer votre code (voir exemple minimal reproductible ) et le message d'erreur exact que vous obtenez?
Vous avez un tableau de int et vous essayez d'insérer le type Employee. Ce n'est pas la même chose
c'est tout ce que je sais, googler maintenant - Wow @Amedeus, votre commentaire a beaucoup aidé, merci!