我是 C++ 的新手,因为我正在大学学习它,但我遇到了一个问题。我有一个项目要做,应该很容易做,但我似乎遇到了一些困难。我必须实现一个 Person 类,它正好有 3 个参数:姓名、名字(这是我的大问题,因为可以在 char* 数组中放入多个姓名,所以它将是一个 char**)和年龄。我的老师给了我一个 testPerson.cc 文件,它使用我的 Person 类来创建几种类型的 Person。我的问题是当我创建构造函数时,因为我必须处理几种情况:例如,如果一个人只有一个名字,例如:
const Personne lea ("Tralala", "Lea", 45);
或者一个人有几个名字:
const char* prenoms1[] = {"Marcel", "Firmin", "Gaston", 0};
const Personne marcel ("Meharcele", prenoms1, 78);
我确信我必须有 3 个属性:name(char*)、firstname(char**)、age(int)。
这是老师给我的文件中的一个片段(在创建我的 Person 类时我必须尊重):
int main () {
cout << "We create the next persons:\n";
// version of constructor with several names:
const char* prenoms1[] = {"Marcel", "Firmin", "Gaston", 0};
const Personne marcel ("Meharcele", prenoms1, 78);
// version of constructor with only one name:
const Personne lea ("Tralala", "Lea", 45);
如您所见,对于只有 1 个 fname 或多个 fname 的情况,我需要几个构造函数这是我的类:
#include "personne.h"
Personne::Personne(const char* name, const char** fnames, int a) {
nom = name;
prenom = fnames;
age = a;
}
Personne::Personne(const char* name, const char* fname, int a) {
nom = name;
prenom = fname; //here I have a problem, since the attribute prenom is of type char**
age = a;
}
void Personne::setAge(int& a) {
age = a;
}
void Personne::setNom(const char* name) {
nom = name;
}
void Personne::setPrenoms(const char** fnames) {
}
int Personne::getAge() const {
return age;
}
char* Personne::getNom() const {
return nom;
}
char** Personne::getPrenoms() const {
return prenom;
}
我花了几个小时思考一个解决方案,我搜索了很多(所以我做了功课),只是我不知道如何实施正确的解决方案。