我有两个模型,一个用户模型和一个课程模型
用户架构如下所示:
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
来自更多的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)