我是C++的新手,因爲我在大學學習它,並且遇到了問題。我有一個項目要做,應該相當容易,但我似乎遇到了一些困難。我必須實現一個Person類,它有三個參數:name,firstnames(這是我的BIG問題,因爲可以有多個名稱放在char *數組中,所以它將是char **)和年齡。我的老師給了我一個testPerson.cc文件,它使用我的Person類創建幾種類型的人員。我的問題是,當我創建的構造(S),因爲我必須管理幾種情況:例如,如果一個人只有一個名字,例如:C++中的特殊Person類
const Personne lea ("Tralala", "Lea", 45);
或一個人有幾個firstnames:
const char* prenoms1[] = {"Marcel", "Firmin", "Gaston", 0};
const Personne marcel ("Meharcele", prenoms1, 78);
我知道我必須確切地擁有3個屬性:name(char *),firstname(char **),age(int)。
下面是老師給我的文件(創建我一個人上課的時候,我必須尊重)一個片斷:
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或幾個fnames 這裏是我的課:
#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;
}
我花了幾個小時想一個解決方案,我用Google搜索了很多(所以我做功課),它只是我不知道如何實現正確的解決方案。
如果你可以使用STL,這將使得使用STL 'std :: vector' –
peacemaker