c訪問父類成員
❶ 子類能訪問父類的哪些成員
1、能夠訪問標為public protected的成員變數和方法;
2、如果子類與父類在同一包內,還能訪問默認(無修飾符)的成員變數與方法。
3、不能訪問標為private的成員。
❷ c++在子類中用父類對象訪問父類protected成員
基類名用錯了,從你的給出的代碼上下文來看,沒有類A,只有Base。樓主是否搞錯了?
❸ c++中派生類如何訪問基類成員變數
C++中派生類對基類成員的訪問形式主要有以下兩種:
1、內部訪問:由派生類中新增成員對基類繼承來的成員的訪問。
2、對象訪問:在派生類外部,通過派生類的對象對從基類繼承來的成員的訪問。
三種繼承方式下,派生類對基類成員的訪問規則。
1、私有繼承的訪問規則
❹ C++派生類中,如何用子類的成員變數訪問父類得成員變數
怎麼可能通過子類的成員變數訪問父類的成員變數?你是想問怎樣通過子類的對象訪問父類的成員變數吧。
如果父類的成員變數是public或protected類型的,且派生類是共有或保護繼承的,可直接用派生類的對象加點運算符調用父類的成員變數。如:man.i;
用指針的話就是 pMan->i;
且這個值可直接輸出:
int a;
a=man.i;或a=pMan->i;
❺ C++ 用子類定義的對象 怎麼調用父類的成員函數
不一定,要按繼承方式分三種情況討論。
public繼承:
可以調用基類中被protected和public修飾的成員變數與成員函數。
protected繼承:
可以調用基類中被public修飾的成員變數與成員函數。
private繼承:
不可以調用基類中任何成員變數與成員函數。
❻ c++子類訪問父類私有成員
一般好的項目,代碼風格,設置成private的成員變數,不應該直接訪問它的,最好為Circle::r寫個成員函數,就可以間接訪問了。比如
int Circle::Getr()
{
return r
}
另外,如果你非要不該父類的情況下訪問,也是可以的,比如用類的成員指針,具體使用不好理解,風格不好。
❼ C++公有繼承,子類訪問父類成員問題
可以在C中通過get訪問父類x。只是你的示例代碼有好幾個語法錯誤。
classA{
protected:
intx;
public:
voidset(inti){
x=i;
}
intget(){ //返回值類型為int
returnx;
}
};
classB:publicA{
inty;
}; //要加分號
classC:protectedB{
public:
voidset(intx){
B::set(x);
}
intget(){
returnB::get();
}
}; //要加分號
intmain(){
Cc;
c.set(123);
cout<<c.get();
}
❽ C++如何調用父類的方法
C++通過子類調用父類函數fun();
子類和父類函數名一樣的函數fun,如果參數不一樣,不管加不加virtual,當子類調用fun()時,會先在子類中找,找不到會報錯。
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
(8)c訪問父類成員擴展閱讀:
C++語言特點:
1、支持繼承和重用
在C++現有類的基礎上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程序結構,明確類間關系,並且充分利用已有的類來完成更復雜、深入的開發。新定義的類為子類,成為派生類。它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。
2、支持多態性
採用多態性為每個類指定表現行為。多態性形成由父類和它們的子類組成的一個樹型結構。在這個樹中的每個子類可以接收一個或多個具有相同名字的消息。當一個消息被這個樹中一個類的一個對象接收時,這個對象動態地決定給予子類對象的消息的某種用法。多態性的這一特性允許使用高級抽象。
繼承性和多態性的組合,可以輕易地生成一系列雖然類似但獨一無二的對象。由於繼承性,這些對象共享許多相似的特徵。由於多態性,一個對象可有獨特的表現方式,而另一個對象有另一種表現方式。
參考資料來源:網路-C++
❾ C++問題: 通過怎樣的方式父類的對象可以直接調用子類的成員~~,求解~~
不可以吧!
如果實在想訪問,可以通過虛函數方式進行訪問,比如:
class father
{
public:
virtual void* getElementsAddr()
{
return null;
}
};
class child : public father
{
public:
virtual void* getElementsAddr()
{
return &element;
}
private:
int element;
}
void main()
{
father &cFather = child();
void* pElement = cFather.getElementsAddr();
}
不知道是不是你想要的方式。
❿ C#中在子類中訪問父類成員的關鍵字是什麼
使用base.調用父類裡面的屬性
public class parent
{
public string a;
}
public class child :parent
{
public string getparent()
{
return base.a;
}
}