2017-04-07 70 views
-1

我的錯誤是什麼?當我想要獲得人員課程的結果時,它只給我提供二級信息,不顯示他們的姓名?我錯了嗎 ?我想通過人類設置人體信息,並使用它的任何幫助? (請說我改變人類如何kname和保存個人類變化) person.h在類繼承中得到相同的結果

#include<iostream> 
#ifndef person_h 
#define person_h 

using namespace std; 

class person { 

protected: 


    static string kname; 

    static int kage; 


public: 

    static void setnumber(); 
    static void setname(); 

    static void setage(); 

    void display(); 
}; 
#endif 

person.cpp

#include"person.h" 


string person::kname; 
int person::kage =0; 



void person::setage() 
{ 

    cout << " please enter your age \n"; 

    cin >> kage; 


} 

void person::setname() 
{ 
    cout<< "please enter your name \n"; 
cin >> kname; 

} 


void person::display() 
{ 
    int i=0; 

    for(i=0; i< 3; i++) 
     cout << kname <<endl; 
} 

human.h

#include<iostream> 
    #include"person.h" 
    #ifndef human_h 
    #define human_h 


    using namespace std; 

    class human : public person { 

    protected: 

     person k[100]; 
    static int i; 

    static int counter; 


    public: 

     void info(); 

}; 
#endif 

human.cpp

#include"human.h" 

int human::number=0; 
int human::counter=0; 
void human::setnumberofperson(int a) 
{ 
srand(time(0)); 

    cout << " how many person ? \n"; 
    cin >> a; 
    counter = a; 



} 

void human::info() 
{int i=0; 

for (i=0; i< counter; i++){ 


    k[i].setage(); 

     k[i].setname(); 



cout << k[i].kname << "\t" << "\t" << k[i].kage << endl; 


} 
} 

的main.cpp

#include<iostream> 
#include"person.h" 
#include"human.h" 
int main() 
{ 


int a; 
person k1; 

human e1; 
e1.setnumberofperson(a); 
e1.sabtename(); 
k1.display(); 
} 
+1

請花一分鐘,讓您的縮進是一致的。可以擁有自己的風格,但是每個其他行都有不同的縮進方式會讓人感覺很不舒服 –

+0

是的,我有很多人,希望保存他們的提示 –

+0

然後刪除人物類中的每個靜態實例。 – drescherjm

回答

1

這種靜態的聲明是問題

static string kname; 
static int kage; 

這些變量屬於類而不是類的實例的原因...

所以當你做

person1.setName("carl") 

和somewhen後

person2.setName("xoce") 

現在兩個對象具有相同的名稱... xoce

之所以出現這種情況是因爲靜態變量不屬於對象,但類本身的原因...

編輯>

來解決這個問題,消除靜電字和定義setter和getter方法爲你的類...

+0

好的請說出我是如何改變人類並保存改變人類 –

+0

嗨@masterboy我更新了我的答案... –

相關問題