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 17:03:32 浏览: 65
使用include <iostream>时一定要加using namespace std
该程序存在语法错误,编译无法通过。具体错误如下:
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
```
阅读全文