![]() |
#2
czsbc2011-10-12 21:18
|

class Base
{
public:
Base(int i):a(i){}
void Output(){printf("%d",a);}
private:
int a;
};
class Son : public Base
{
public:
Son(int i, int j):b(j),Base(i){};
void Output(){printf("%d",b);}
private:
int b;
};
int main()
{
Son S(1001,100);
S.Output();
getch();
return 0;
}
{
public:
Base(int i):a(i){}
void Output(){printf("%d",a);}
private:
int a;
};
class Son : public Base
{
public:
Son(int i, int j):b(j),Base(i){};
void Output(){printf("%d",b);}
private:
int b;
};
int main()
{
Son S(1001,100);
S.Output();
getch();
return 0;
}
输出是100,为什么,不是说基类不加虚函数标识符使用的是基类中的函数么?
此外,我用指针Son输出的是100,用指针Base输出的就是1001了

int main()
{
Son *p=new Son(1001,100);
//Base *p=new Son(1001,100);
p->Output();
getch();
return 0;
}
{
Son *p=new Son(1001,100);
//Base *p=new Son(1001,100);
p->Output();
getch();
return 0;
}