小编Tim*_*ele的帖子

如果布尔值为true,则为Rails Association

我有两个模型,一个用户模型和一个课程模型

用户架构如下所示:

create_table "users", force: true do |t|
    t.string   "username",                        default: "",    null: false
    t.string   "first_name",                      default: "",    null: false
    t.string   "last_name",                       default: "",    null: false
    t.string   "password_digest",                 default: "",    null: false
    t.string   "email",                           default: "",    null: false
    t.string   "email_unconfirmed",               default: "",    null: false
    t.string   "email_verification_token",        default: "",    null: false
    t.string   "password_reset_token",            default: "",    null: false
    t.datetime "password_reset_token_expires_at"
    t.boolean  "admin",                           default: false
    t.boolean  "teacher",                         default: false
    t.datetime "created_at"
    t.datetime "updated_at"
end
Run Code Online (Sandbox Code Playgroud)

课程架构如下所示:

create_table "courses", force: true do |t|
    t.integer  "teacher_id" …
Run Code Online (Sandbox Code Playgroud)

ruby if-statement ruby-on-rails associations conditional-statements

2
推荐指数
1
解决办法
801
查看次数

通过引用返回新对象

来自更多的Java背景我想知道如何通过引用返回一个新对象.我希望Fraction该类是不可变的,以便每个操作都返回一个带有操作结果的新对象.

这将是我在Java中的代码:

class Fraction {
    int numerator;
    int denominator;

    // Constructor

    Fraction multiply(Fraction other) {
        return new Fraction(other.numerator * this.numerator, 
                            other.denominator * this.denominator);
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在C++中这样做,我会创建内存泄漏,因为我无法清理初始化Fraction对象,因为我只有对象的引用.那么,我如何在C++中处理这个问题呢?

class Fraction {
private:
    int32_t numerator;
    int32_t denominator;
 public:
    Fraction(int32_t numerator, int32_t denominator) {
        this->numerator = numerator;
        this->denominator = denominator;
    }

    Fraction& operator*(Fraction& other) {

        auto numerator = other.numerator * this->numerator;
        auto denominator = other.denominator * this.denominator;

        return *(new Fraction(numerator, denominator))
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ c++11

1
推荐指数
1
解决办法
1764
查看次数