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 20:10:18 浏览: 96
vala-language-server:Vala & Genie 的代码智能
该程序的输出结果为:
```
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
```
阅读全文