기본 C++ 항목을 기억하려고합니다 (오랜 시간이 걸렸습니다). 간단한 기본/자식 상속 예제를 만들었습니다. 상속 예제가 예상 결과를 출력하지 않습니다.
내가 예상 출력 대신index 0 is 0
index 1 is 1
index 2 is 2
하지만 아래 얻을 :
index 0 is 0
index 1 is 2
index 2 is 0
사람은 분명히 내 부분에 가난한 실수가 무엇인지 지적 할 수 있습니까?
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
class Base
{
public:
Base(){x=0;}
int x;
};
class Derived : public Base
{
public:
Derived() { y=0;}
int y;
};
// practicing operator definition syntax
ostream& operator<<(ostream& ostr, const Base& base)
{
ostr << base.x << endl;
ostr << flush;
return ostr;
}
void init(Base *b)
{
for (int i = 0; i<3; i++)
{
b[i].x=i;
}
};
int main(int argc, char** argv)
{
Derived arr[3];
init(arr);
for (int idx = 0; idx< 3; idx++)
{
cout << "index is " << idx << ' ' << arr[idx] << endl;
}
return 0;
}
'init'에 무엇을 전달하고 있습니까? – nwp
분명히 잘못된 것입니다 (아래 응답 참조). – frododot