我想了解繼承,我需要一些幫助建立兩個類。第一個稱爲A,第二個稱爲B. A有一個私有整數值「m_a」。它有兩個構造函數,默認的一個將m_a設置爲5.另一個將一個名爲m的整數作爲參數,並將m_a的值設置爲m。至於成員函數,它將有兩個。第一個將返回m_a。第二個將打印「你好從A!」。讓我們繼續討論B. B將有一個私有字符串m_s。一個默認的構造函數,它將m_s設置爲「asd」或除空字符串和構造函數之外的任何內容,該構造函數將一個字符串作爲參數並將m_s設置爲它的值。就功能而言,首先B將具有將返回m_s的函數。它將具有一個函數,它將與A中的打印「Hello from A」函數具有相同的名稱,它將覆蓋它並打印出「Hello from B!」相反(是多態?)。學習繼承
這些是需要的類。我有以下問題(我將發佈我在下面創建的內容) 首先,有什麼方法可以從基類獲取私有數據文件。例如,假設我想要使用m_s變量,將其添加到另一個變量並打印出它們的總和。那可能嗎 ? (以及如何)
另外,當我嘗試創建一個與默認構造函數不同的類時,我得到錯誤。我顯然做錯了什麼。問題是什麼。
我認爲這些都是我現在所有的問題,所以現在是我發佈源代碼的時候了。
#include <iostream>
#include <string>
using namespace std;
class A
{
private:
int m_a;
public:
A(){m_a = 5;}
A(int m)
{
m_a = m;
}
void pm()
{
cout << "Hello from A!" << endl;
}
int get_a()
{
return m_a;
}
};
class B : A
{
private :
string m_s;
public:
B(){m_s = "asd";}
B(string s)
{
m_s = s;
}
void pm()
{
cout << "Hello from B!" << endl;
}
string get_s()
{
return m_s;
}
};
int main()
{
A a(10);
a.pm();
cout << a.get_a() << endl;
B b("asd");
b.pm();
cout << b.get_s() << endl;
cout << b.get_a() << endl;
return 0;
}
我明白了,我會研究一下更多。非常感謝! – Bloodcount