討論區快速選單
知識庫快速選單
網路投保旅行平安險 手把手帶你Android開發實務 將BI融合到Excel資料分析中
[ 回上頁 ] [ 討論區發言規則 ]
"求助高手"
更改我的閱讀文章字型大小
作者 : keroro9531216(阿Q)
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/16 下午 10:43:46
我現在是用dev c++,就是Bloodshed Dev-C++來執行.
我現在打好的程式是以下的內容:
#include <iostream>

using namespace std;

class person
{
private:
     char name[20];
     int age;
public:
     person();
     void show_person();
     };
    
class student : public person
     {
private:
     char school[20];
public:
     student();
     void show_school();
     };
    
person::person()
{
 cout<<"Input name \n";
 cin>>name;
 cout<<"Input age \n";
 cin>>age;
};

void person::show_person()
{
     cout<<"Name;"<<name<<"\n";
     cout<<"Age;"<<age<<"\n";
};

student::student()
{
     cout<<"Input school \n";
     cin>>school;
     }
     void student::show_school()
     {
     cout<<name<<"in the student of TSINT"<<school<<"\n";
     };
    
int main()
{
    student dennis;
    
    person frank;
    
    frank.show_person();
    
    dennis.show_person();
    
    dennis.show_Preschool();
    
    return 0;
}
然後我執行後還是有錯誤不知道如何修改,我已經想了好幾天了
真的沒辦法~所以來求助高手拜託幫忙~
在此先謝謝~
作者 : keroro9531216(阿Q)
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/16 下午 10:57:50
各位大大們:
1.我現在的問題程式還有錯誤
2.我需要的執行結果:
是以下這樣:
Name:dennis
Age:35
Name:frank
Age:20
in the student of TSINT

我這個程式會用到繼承→衍生→基底類別→衍生類別→虛擬函數等~
拜託各位大大和高手幫忙~
當然我自己也會努力~
希望有人能幫我~再次拜託各位大大~
謝謝~
作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1599 | 人氣 38709 | 評價 4590 | 評價/貼文 2.87 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/17 上午 09:19:45
把錯誤訊息貼出來比較重要
大略看一下
dennis.show_Preschool();
寫錯了
另外好像也沒有virtual這個字
應該稱不上虛擬函數吧

作者 : keroro9531216(阿Q)
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/17 上午 11:58:57
這位 kagaya(kagaya)大大,你說的錯誤我已修正~
因為我只有除錯軟體,並且才剛開始學,如有什麼地方說的不夠清楚明白,希望大大們能多多指教~
至於顯示錯誤訊息的部份:
8行 C:\Dev-Cpp\Qoo\main3.cpp `char person::name[8]' is private
45行 C:\Dev-Cpp\Qoo\main3.cpp within this context
8行 C:\Dev-Cpp\Qoo\main3.cpp `char person::name[8]' is private
45行 C:\Dev-Cpp\Qoo\main3.cpp within this context
=================================

#include <iostream>

using namespace std;

class person
{
private:
     char name[8];
     int age;
public:
     person();
     void show_person();
     };
    
class student : public person
     {
private:
     char school[8];
public:
     student();
     void show_school();
     };
    
person::person()
{
 cout<<"Input name \n";
 cin>>name;
 cout<<"Input age \n";
 cin>>age;
};

void person::show_person()
{
     cout<<"Name;"<<name<<"\n";
     cout<<"Age;"<<age<<"\n";
};

student::student()
{
     cout<<"Input school \n";
     cin>>school;
     }
     void student::show_school()
     {
     cout<<name<<"in the student of TSINT"<<school<<"\n";
     };
    
int main()
{
    student dennis;
    
    person frank;
    
    frank.show_person();
    
    dennis.show_person();
    
    dennis.show_school();
    
    return 0;
}
作者 : keroro9531216(阿Q)
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/17 下午 12:03:19
kagaya(kagaya)大大你好~
我想請問你,你說的virtual這個字,我沒有看到
因為是新手和初學者,所以還有地方要多多學習
請多多指導~
謝謝

作者 : kagaya(kagaya) VC++優秀好手C++優秀好手貼文超過1000則人氣指數超過30000點
[ 貼文 1599 | 人氣 38709 | 評價 4590 | 評價/貼文 2.87 | 送出評價 115 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/17 下午 01:50:41
這個錯誤訊息的意思應該是
name是私有(private)成員
而你在該類別以外的地方去存取它
所以發生錯誤了
你可以把private改成protected
或者加入getName() setName()之類的成員函式去存取它
作者 : keroro9531216(阿Q)
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/18 下午 04:38:13
大大我有照你說的部份修改:
#include <iostream>

using namespace std;

class person
{
private:
     char name[8];
     int age;
public:
     person();
     void getperson(char n, int a);
     void show_person();
     };
    
class student : public person
     {
private:
     char school[8];
public:
     student();
     void show_school(int s);
     };
    
person::person()
{
 cout<<"Input name \n";
 cin>>name;
 cout<<"Input age \n";
 cin>>age;
};

void person::getprson(char n, int a)
{
     name=n;
     age=a;
    cout<<"Name;"<<name<<"\n";
     cout<<"Age;"<<age<<"\n";
}

void person::show_person()
{
     cout<<"Name;"<<name<<"\n";
     cout<<"Age;"<<age<<"\n";
};

student::student()
{
     show_school=0;
     cout<<"Input school \n";
     cin>>school;
     }
     void student::show_school(int s)
     {
     show_school=s;
     cout<<name<<"in the student of TSINT"<<school<<"\n";
     };
    
int main()
{
    student dennis;
    
    person frank;
    
    frank.show_person();
    
    dennis.show_person();
    
    dennis.show_school();
    
    return 0;
}

麻煩大大指導~
作者 : smallwhite(小白)
[ 貼文 150 | 人氣 6678 | 評價 300 | 評價/貼文 2 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2009/4/18 下午 07:32:10
int main()
{
    student dennis;
    person frank;
    frank.show_person();
    //frank.show_school();//是person就可以show_school()嗎?
    dennis.show_person();
    dennis.show_school();
    return 0;
}
是person就可以show_school()嗎?如果你不是要這樣的關係,那就不需要虛擬函數了...
如果你弄不懂PUBLIC、PROTECTED與PRIVATE的差別,就先直接把他們都改成PUBLIC的,就不會有不能存取的問題了...
 板主 : Clark
 > 物件導向程式設計 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 物件導向程式設計 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
物件導向程式設計
1 Arthur 180 
2 藍色LED 150 
3 長長 100 
4 Linkin 100 
5 love seeker 100 
6 Raymond 90 
7 Nets 80 
8 nop 70 
9 Huah 70 
10 矇矇 60 
物件導向程式設計
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.046875