下面的程序,你能给出它的执行结果吗?
class grand_c{
public:
grand_c();
virtual ~grand_c() {}
char c;
int f1(){printf("f1: grand_c \n");}
virtual int test_1() = 0;
};
grand_c::grand_c()
{
std::cout << "creat gc\n" << std::endl;
}
class father_c:public grand_c
{
public:
father_c();
virtual ~father_c() {}
int f1(){printf("f1: father_c \n");}
int a;
private:
int test_1(){ std::cout << "father" << std::endl;}
};
father_c::father_c()
{
std::cout << "creat fc\n" << std::endl;
}
class child_c:father_c//:pablic father_c
{
//public:
// int no;
public:
child_c();
virtual ~child_c() {}
int f1(){printf("f1: child_c \n");}
private:
int test_1(){ std::cout << "child " << std::endl;/*printf("%s:%d\n",__FUNCTION__,__LINE__);*/}
};
child_c::child_c()
{
std::cout << "creat cc\n" << std::endl;
}
int main(void)
{
grand_c *gc;
child_c cc;
father_c fc;
gc = (grand_c *)(&cc);
gc->test_1();
gc->f1();
gc = (grand_c *)(&fc);
gc->f1();
gc->test_1();
}
|