對于下面的示例代碼,我試圖將資料從類A的物件傳遞到派生類的物件(或屬性,如果這更適合您)B。到目前為止我不明白的是如何將資料從父類物件傳輸到派生類物件。
下面的“代碼”表達了我是如何嘗試這樣做的。
class Foo {
protected:
string Name, Surname;
public:
void readData()
{
cin >> Name >> Surname >> ;
}
}
class Bar : public Foo {
public:
Bar(Foo a)
{
Name = Name;
Surname = Surname;
}
void printData()
{
//code
}
}
int
main()
{
Foo a;
a.readData();
Bar b(a);
b.printData()
}
uj5u.com熱心網友回復:
使您的代碼編譯的最小更改是使用Foos 復制建構式并簡單地訪問 中的繼承成員Bar::printData:
#include <string>
#include <iostream>
class Foo{
protected:
std::string Name, Surname;
public:
void readData()
{
std::cin >> Name >> Surname;
}
};
class Bar : public Foo
{
public:
Bar (const Foo& a) : Foo(a) { }
void printData()
{
std::cout << Name << " " << Surname;
}
};
int main()
{
Foo a;
a.readData();
Bar b(a);
b.printData();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/312578.html
