B
의 변수
w
의 추가 저장 클래스
A
에서
z
및 가정 해 보겠습니다 생성 한
상속에서 파생 된 클래스에 기본 클래스에서 결과를 얻을 수 D
- z
및 w
에 저장된이 값을 파생 클래스 D
에 가져와이 수를 곱할 수 있습니까?우리는
코드는 다음과 같을 것이다 :
이 가 가#include <iostream>
using namespace std;
class c1
{
int x, y;
public:
void getdata1(int a, int b)
{
x = a;
y = b;
}
void add1()
{
int z = x + y;
cout << "the sum is " << z << endl;
}
};
class c2
{
int x, y;
public:
void getdata2(int a, int b)
{
x = a;
y = b;
}
void sub1()
{
int w = x - y;
cout << "the sum is " << w << endl;
}
};
class D: public c1, public c2
{
/////////////////////////////////////////////////////////////////////////////////////
public:
void display()
{
cout << "the product is s" << z + w; // something like this
}
};
///////////////////////////////////////////////////////////////////////////////////////
int main()
{
D obj1;
obj1.getdata1(10, 5);
obj1.getdata2(10, 5);
obj1.add1();
obj1.sub1();
obj1.display();
return 0;
}
가 이
모든 것을 좋아하기 때문에 코드를 올바르게 포맷하십시오. 실제로 ** 데이터 **를 설정하는 getdata() 메소드를 작성하지 마십시오. –
'z'와'w'는 각각'c1'과'c2' 클래스의 데이터 멤버가 아닙니다. 그것들은 각각의 기능에서 로컬 변수입니다. 'D'에'z'와'w'를 상속 받기를 원한다면, 그것들을 각각의 클래스에서 public/protected 멤버로 선언해야합니다. –
BTW :이 예제는 데이터 멤버가 만들어 졌는지, 그리고 어떤 방법이 좋은지 오해 한 것처럼 보입니다. 또한 여러 데이터 멤버가 하나의 인스턴스에서 여러 "개체"를 나타 내기 때문에 OOP 디자인을 여기에서 볼 수 없습니다 ... 나에게 너무 나빠 보인다! – Klaus