using namespace std; class A{ public: int val; A(int n=0){val=n;} A & getObj1(){return *this;} int getObj2(){return val;} }; int main() { A a,b(2),c[2]={10}; cout<<a.val<<endl; cout<<b.val<<endl; cout<<c[0].val<<endl; a.getObj1()=5; cout<<a.val<<endl; cout<<b.getObj2()<<endl; return 0; }的结果
时间: 2023-10-30 08:10:18 浏览: 92
该程序的输出结果为:
```
0
2
10
5
2
```
程序中定义了一个名为 A 的类,包含一个整型成员变量 val 和三个成员函数。其中:
- 构造函数 A(int n=0) 可以通过传入整型参数 n 来初始化 val 成员变量,如果没有传参则默认初始化为 0。
- 成员函数 A& getObj1() 返回当前对象的引用。
- 成员函数 int getObj2() 返回当前对象的 val 成员变量。
在主函数中,定义了三个 A 类型的对象 a、b 和 c[2]。其中,a 没有传入参数,因此 a.val 的初始值为 0,b 传入参数 2,因此 b.val 的初始值为 2,c 数组的第一个元素 c[0] 初始化为 10,第二个元素 c[1] 未初始化,因此 c[1].val 的值也是 0。
接下来,程序分别输出了 a.val、b.val 和 c[0].val 的值,然后将 a.getObj1() 返回的引用赋值为 5,此时 a.val 的值变为 5。最后输出了 a.getObj2() 和 b.getObj2() 的结果,分别输出了 a 和 b 对象的 val 成员变量的值。
因此,程序的输出结果为:
```
0
2
10
5
2
```
相关问题
using namespace std; class A{ public: int val; A(int n=0){val=n;} A & getObj1({return *this;} int getObj2({return val;} }; int main() A a,b(2),c[2]={10}; cout< <a.val< <endl; cout< <b.val< <end|; cout< <c[0].val< <end|; a.getObj1()=5; cout< <a.val< < endl; cout< <b.getObj20< <endl; return 0; }
这段代码有一些语法错误,我来帮你修正一下:
```c++
#include <iostream>
using namespace std;
class A{
public:
int val;
A(int n=0){val=n;}
A & getObj1(){return *this;}
int getObj2(){return val;}
};
int main(){
A a,b(2),c[2]={10};
cout << a.val << endl;
cout << b.val << endl;
cout << c[0].val << endl;
a.getObj1()=5;
cout << a.val << endl;
cout << b.getObj2() << endl;
return 0;
}
```
这段代码定义了一个类`A`,包含一个整数`val`和两个成员函数`getObj1()`和`getObj2()`。在`main`函数中,定义了三个`A`类型的变量`a`、`b`、`c`,并分别输出它们的`val`值。然后通过`getObj1()`函数修改了`a`的`val`值为`5`,并输出了`a`和`b`的`val`值,最后返回`0`。
#include <iostream> using namespace std; class A { public: int val; A(int // 在此处补充你的代码 }; int main() { int m,n; A a; cout << a.val << endl; while(cin >> m >> n) { a.GetObj() = m; cout << a.val << endl; a.GetObj() = A(n); cout << a.val<< endl; } return 0; }
在这段代码中,缺少A类的构造函数的定义。下面是一个可能的实现:
```
class A {
public:
int val;
A(int x = 0) : val(x) {}
A& GetObj() {
return *this;
}
};
```
构造函数的参数是可选的,如果没有提供参数,则val的默认值为0。GetObj()函数返回当前对象的引用,这使得我们可以使用赋值操作符来修改val的值。在主函数中,我们创建了一个A对象a,并输出了它的val值。之后,我们进入了一个while循环,读入两个整数m和n。然后,我们将a的val值设置为m,并输出它的值;接着,我们创建了一个新的A对象,其val值为n,并将其赋值给a,再次输出a的val值。这样,我们就可以通过GetObj()函数来修改A对象的val值。
阅读全文