0

我正在尝试转换此代码:

#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,但我无法弄清楚。我试过使用模块,但发现模块中不能有构造函数。我也不太了解 ruby​​ struct 类。如果有人可以解释这些或帮助我转换它,将不胜感激。

4

1 回答 1

3

我认为这可能值得一看:

C++ - 结构与类

您的结构是大多数语言(包括 Ruby)所称的类(不是 C 风格的结构):

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

您需要attr_accessor使成员公开(这是 C++ 中结构的默认行为)。

于 2013-04-08T18:28:51.313 回答