[問題] 請問繼承中Protected用法???

看板C_and_CPP作者 (Lonely Wave)時間10年前 (2013/10/21 15:01), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
想練習一個程式,父類別為Jimmy,子類別Mark繼承自父類別 問題如下: (1).印象中Protected子類別Mark可以使用,但我利用Mark去產生一個物件(one)之後, 卻無法在主程式裡面引用,也就是我想多寫兩行one.family="Father"跟 cout<<one.family<<endl,為什麼會編譯錯誤呢?? 問題點:是不是所謂的子類別可以使用,是指"類別內"而不是"主程式"呢?? (2).class Mark:public Jimmy 問題點:想請問上面的public,是代表什麼意思,是不是指從父類別繼承而來的屬性 延續繼承給下面想繼承Mark的人,是屬於他們也可以使用的意思嗎?? 程式檔案如下: //引入函式庫 #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std; //定義類別 class Jimmy { public: char *name; int age; bool sex; char *address; protected: char *family; private: int money; }; //繼承 class Mark:public Jimmy { }; //主程式 int main() { Mark one; one.name="Mark"; one.age=26; one.sex=true; one.address="Taiwan"; cout<<one.name<<endl; cout<<one.age<<endl; cout<<one.sex<<endl; cout<<one.address<<endl; system("pause"); } -- 鼓是根 如此沉穩卻又震撼 貝斯是莖 如此低調卻又細膩 吉他是葉 如此明亮卻又絢爛 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.80.227.62

10/21 16:55, , 1F
(1) Yes,是指該class內部可用,但外部無法使用
10/21 16:55, 1F

10/21 16:58, , 2F
(2)public繼承是指,父類別的成員之存取權限原封不動的
10/21 16:58, 2F

10/21 16:59, , 3F
繼承下來,原來的public、protected、private都保持不變
10/21 16:59, 3F

10/21 19:38, , 4F
你怎麼不試試 (new Jimmy())->family = "123" 會不會過呢
10/21 19:38, 4F

10/21 21:08, , 5F
謝謝a大
10/21 21:08, 5F
文章代碼(AID): #1IPD4tSV (C_and_CPP)