3.14以下程序的运行结果是 #include<iostream> using namespace std; class B{ public: B(){} B(int i, int j) {x=i; y=j; void printb() } private: int x, y; }; class A{ public: A(){} A(int i, int j); void printa(); private:B c; }; A::A(int i, int j):c(i, j) {} void A::printa() {c. printb(); } int main() {A a(7, 8);
时间: 2024-01-03 07:03:32 浏览: 29
该程序存在语法错误,编译无法通过。具体错误如下:
1. 在B类中,printb()函数没有定义函数体,应该在函数后加上大括号并定义函数体。
2. 在A类的构造函数中,应该使用初始化列表来初始化成员变量B c,而不是在函数体中赋值。
修改后的程序如下:
```
#include<iostream>
using namespace std;
class B{
public:
B(){}
B(int i, int j) {x=i; y=j;}
void printb() {cout << "x=" << x << ", y=" << y << endl;}
private:
int x, y;
};
class A{
public:
A(){}
A(int i, int j):c(i, j) {}
void printa() {c.printb();}
private:
B c;
};
int main() {
A a(7, 8);
a.printa();
return 0;
}
```
运行结果是:
```
x=7, y=8
```
相关问题
检查这个代码#include<iostream> using namespace std; class Shape { protected: int r; public: Shape(int r); virtual double surfaceArea()=0; virtual double volume()=0; }; Shape::Shape(int r):r(r){ } class Ball:public Shape{ public: Ball(int r); double surfaceArea()override; double volume ()override; }; Ball::Ball(int r):Shape(r){ } double Ball::surfaceArea(){ return 4*3.14*r*r; } double Ball::volume(){ return 4.0/3*3.14*r*r*r; } class Cylinder:public Shape{ private: int height; public: Cylinder(int r,int height); double surfaceArea()override; double volume()override; };
代码没有结束,缺少最后的括号和分号。另外,在Cylinder类的构造函数中,应该调用父类构造函数来初始化Shape类中的r成员变量。正确的代码如下:
```
#include<iostream>
using namespace std;
class Shape {
protected:
int r;
public:
Shape(int r);
virtual double surfaceArea()=0;
virtual double volume()=0;
};
Shape::Shape(int r):r(r){}
class Ball:public Shape{
public:
Ball(int r);
double surfaceArea()override;
double volume ()override;
};
Ball::Ball(int r):Shape(r){}
double Ball::surfaceArea(){
return 4*3.14*r*r;
}
double Ball::volume(){
return 4.0/3*3.14*r*r*r;
}
class Cylinder:public Shape{
private:
int height;
public:
Cylinder(int r,int height);
double surfaceArea()override;
double volume()override;
};
Cylinder::Cylinder(int r,int height):Shape(r),height(height){}
double Cylinder::surfaceArea(){
return 2*3.14*r*r+2*3.14*r*height;
}
double Cylinder::volume(){
return 3.14*r*r*height;
}
```
#include <iostream> #include <cmath> using namespace std; const double pi = 3.14; class Circle{ private: int r; public: Circle(int a):r(a){} }; class Cylinder:public Circle{ private: int h; public: Cylinder(int a,int b):Circle(a){ h=b; } void gets(){ double S,V; S=2*pi*r*r+2*pi*r*h; V=pi*r*r*h; cout<<S<<" "<<V<<endl; } }; int main(){ int a,b; cin>>a>>b; Cylinder x1(a,b); x1.gets(); return 0; }
这段代码实现了计算圆柱的表面积和体积。其中,Circle类表示圆,Cylinder类继承自Circle类,表示圆柱。在Cylinder类中,使用了圆的半径r和圆柱的高h来计算表面积和体积,并将结果输出。在主函数中,通过输入半径和高来创建一个Cylinder对象,并调用gets()函数来计算并输出表面积和体积。