#include<iostream> using namespace std; class B0{ public: virtual void display(){ cout<<"B0::display()"<<endl; } }; class B1:public B0{ public: void dispaly(){ cout<<"B1::display()"<<endl; } }; void fun(B0 * ptr){ ptr->display(); } int main(){ B0 b0; B1 b1; fun(&b0); fun(&b1); return 0; } 的运行结果
时间: 2024-03-08 18:50:38 浏览: 89
运行结果为:
```
B0::display()
B1::display()
```
因为B1继承自B0,并重写了B0中的display()方法。在调用fun()函数时,传入的参数是指向B0或其子类的指针,因此会调用相应对象的display()方法。对于B0对象,调用B0中的display()方法,输出"B0::display()";对于B1对象,调用B1中重写的display()方法,输出"B1::display()"。
相关问题
请写出下面程序的运行结果。 #include<iostream> using namespace std; class B ( public: virtual void display( ) cout << "B: : display( ) "<<endl; ] " class C: public B public: void display(0){ cout<<"C: : display() "<<endl; ] . void fun(B*p) [ p >display(0); void main() (B b,*pb; C c; pb=&b; fun (pb) ; pb=&c; fun (pb)
程序存在一些语法错误,修正后的代码如下:
```
#include<iostream>
using namespace std;
class B {
public:
virtual void display() {
cout << "B: display()" << endl;
}
};
class C: public B {
public:
void display() {
cout << "C: display()" << endl;
}
};
void fun(B* p) {
p->display();
}
int main() {
B b;
C c;
B* pb;
pb = &b;
fun(pb);
pb = &c;
fun(pb);
return 0;
}
```
运行结果为:
```
B: display()
C: display()
```
第一个问题回答完毕,请继续提问。
定义一个描述学生基本情况的类,数据成员包括:年龄、姓名、性别;成员函数包括:输入和输出各个数据成员的值。 分别给出如下的3个文件: ①含类定义的头文件student.h, //student.h class Student { public: void display( ); private: int num; char name[20]; char sex; }; ②包含成员函数定义的源文件student.cpp //student.cpp #include <iostream> using namespace std; #include "student.h" void Student::display( ) { cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; } ③包含主函数的源文件main.cpp。 为了组成一个完整的源程序,应当有包括主函数的源文件: //main.cpp #include <iostream> using namespace std; #include "student.h" int main( ) {Student stud; stud.display(); return 0; } 请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value。修改补充代码并上机运行
/student.h
```c++
class Student {
public:
void display();
void set_value(int n, char *nam, char s);
private:
int num;
char name[20];
char sex;
};
```
/student.cpp
```c++
#include <iostream>
#include "student.h"
using namespace std;
void Student::display() {
cout << "num: " << num << endl;
cout << "name: " << name << endl;
cout << "sex: " << sex << endl;
}
void Student::set_value(int n, char *nam, char s) {
num = n;
strcpy(name, nam);
sex = s;
}
```
/main.cpp
```c++
#include <iostream>
#include "student.h"
using namespace std;
int main() {
Student stud;
stud.set_value(1001, "Tom", 'M');
stud.display();
return 0;
}
```
阅读全文