首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让所有setter函数在c ++中返回对象的引用是否很好?

在C++中,让所有setter函数返回对象的引用可以被认为是一种很好的做法。这种做法可以帮助开发者实现链式调用,提高代码的可读性和可维护性。

例如,假设我们有一个表示点的类,它有x和y两个坐标。我们可以为这个类定义一个setter函数,如下所示:

代码语言:cpp
复制
class Point {
public:
    Point& setX(int x) {
        this->x = x;
        return *this;
    }

    Point& setY(int y) {
        this->y = y;
        return *this;
    }

private:
    int x;
    int y;
};

现在,我们可以使用链式调用来设置点的坐标:

代码语言:cpp
复制
Point p;
p.setX(1).setY(2);

这种做法可以让代码更加简洁和易于阅读。

当然,也有一些异议认为,在某些情况下,返回对象的引用可能会导致一些问题,例如可能会导致对象被意外地修改。但是,如果开发者正确地使用这种做法,并且遵循一些良好的编程实践,那么这种做法可以带来很多好处。

总之,让所有setter函数在C++中返回对象的引用是否很好,取决于具体情况和开发者的实践。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Groovy 语法学习笔记

    整体上来说是简化了java的语法, 省略分号 方法默认返回最后一行代码的返回值,可省略return 方法和类默认public Def 定义变量,不声明类型 传入类的时候不用取.class 方法圆括号可选 getter 和 setter默认有 构造函数可以传入键值给其中的属性赋值 在with()里取子属性,省略完整写法,it 表示this,tap()等于it Groovy 里面 == 具备 equals 的功能,如果只是判断引用是否是同一个对象,使用== 字符串单引号、双引号内可引用变量、\用来折行、三个双引号可以直接写多行,如果要删除intend调用.stripIndent(),使用//中间定义正则直接使用,对比符合正则使用==~ Map 用中括号,里面的key默认是字符串,不需要双引号,如果想要key是一个变量的值使用圆括号包裹key Range可以包括和不包括 * 包括:def range=10..20 * 不包括: def range=10..<20

    01
    领券