2013-04-08 70 views
0

我試圖把這段代碼轉換:在C++結構轉換到Ruby

#pragma once 
#include "thread.h" 
#include <vector> 

struct Process { 
    enum Type { 
    SYSTEM, 
    USER 
    }; 

    // process ID 
    int pid; 

    // process type 
    Type type; 

    // threads belonging to this process 
    std::vector<Thread*> threads; 

    // constructor 
    Process(int pid, Type type) : pid(pid), type(type) {} 
}; 

爲紅寶石,但我無法弄清楚。我試過使用模塊,但發現你不能在模塊中有構造函數。我也不太瞭解ruby結構類。如果有人可以解釋這些或幫助我轉換它,它將不勝感激。

回答

3

我覺得這可能是值得一試:

C++ - struct vs. class

你的結構是大多數語言(包括Ruby)將調用一個類(不是C風格的結構):

class Process 
    def initialize(pid, type) 
    @type = type 
    @pid = pid 
    @threads = [] 
    end 
    attr_accessor :type, :pid, :threads 
end 

您需要attr_accessor來公開成員(這是C++中結構的默認行爲)。

+0

好吧,這是我的想法,但它只是不正確的使用類作爲一個結構。我沒有意識到他們沒有以相同的方式比較。我也不明白爲什麼我會陷入低估,也許是因爲我的問題太具體了? – snowe 2013-04-09 00:41:15