鱼C论坛

 找回密码
 立即注册
查看: 1269|回复: 2

[已解决]代码中的complex addone()是成员函数吗,还是构造函数?

[复制链接]
发表于 2023-11-12 21:13:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码举例2:
#include<iostream>
using namespace std;
class complex
{
        public:
                double real,imag;
                void print()
                {
                        cout<<real<<","<<imag;
                }
                complex(double r,double i):real(r),imag(i)//初始化列表,complex接收传进来的两个数r和i,
                //将r传给real,将i传给img
                {
                        ;
                }
                complex addone()
                {
                        this->real++;//等价于real++
                        this->print();//等价于print
                        return *this;//this指针指向了调用addone()函数的对象
                }
};
int main()
{
        complex c1(1,1);
        complex c2(0,0);
        c2=c1.addone();//c1.anddone会调用addone函数,this指向addone()函数所作用的对象c1,
        //导致c1的real加1,也就变成了2,然后this指向的print()函数所作用的对象c1,打印c1的real=2,imag=1
        return 0;
}
最佳答案
2023-11-12 21:14:12
在你提供的代码中,addone() 是一个成员函数。这是由于它被定义在类 complex 的内部,并且可以访问类的成员变量和其他成员函数。构造函数通常用于初始化对象,而 addone() 则是用来对已有对象进行操作并返回一个新的对象。

在你的代码中,addone() 函数实现了对复数对象的实部加一的操作,并打印出新的实部和虚部,然后返回调用该函数的对象本身。这种设计允许您对已有对象进行修改,而不是创建一个新的对象。

需要注意的是,addone() 并没有改变原来的对象,而是返回了一个新的对象,因为它使用了 this 指针来表示当前对象,并且返回了 *this。这样做可以确保原来的对象保持不变。

希望这能帮助你理解 addone() 函数在你给出的代码中的作用和特性。如果有其他问题,欢迎继续提问!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-12 21:13:39 | 显示全部楼层
addone()是成员函数。它不是构造函数,而是在类中定义的成员函数。在这个例子中,addone()函数接收一个complex对象并对其进行操作,将其real属性加1,并返回修改后的complex对象。因此,addone()是一个成员函数,而不是构造函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-12 21:14:12 | 显示全部楼层    本楼为最佳答案   
在你提供的代码中,addone() 是一个成员函数。这是由于它被定义在类 complex 的内部,并且可以访问类的成员变量和其他成员函数。构造函数通常用于初始化对象,而 addone() 则是用来对已有对象进行操作并返回一个新的对象。

在你的代码中,addone() 函数实现了对复数对象的实部加一的操作,并打印出新的实部和虚部,然后返回调用该函数的对象本身。这种设计允许您对已有对象进行修改,而不是创建一个新的对象。

需要注意的是,addone() 并没有改变原来的对象,而是返回了一个新的对象,因为它使用了 this 指针来表示当前对象,并且返回了 *this。这样做可以确保原来的对象保持不变。

希望这能帮助你理解 addone() 函数在你给出的代码中的作用和特性。如果有其他问题,欢迎继续提问!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 04:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表