C++ から SystemC に移行していますが、次の基本的な質問に答えました。(Google で検索しましたが、単一の .cpp ファイルの例しか得られませんでした)。前もって感謝します。
次の「hello.cpp」が機能することを知っています:
//hello.cpp
#include "systemc.h"
SC_MODULE (hello_world) {
SC_CTOR (hello_world) {
}
void say_hello() {
cout << "Hello World.\n";
}
};
int sc_main(int argc, char* argv[]) {
hello_world hello("HELLO");
hello.say_hello();
return(0);
}
質問 1: どうすれば hello.h と hello.cpp に分けることができますか? 次のコードは C++ です。同等の SystemC コードを作成する方法がわかりません。
//hello.h
class hello_world
{
public:
hello_world();
void say_hello();
};
//hello.cpp
hello_world::hello_world()
{
}
hello_world::say_hello()
{
cout << "Hello World.\n";
}
質問 2: SystemC でネストされたクラスを作成する方法は? たとえば、次の C++ に従った同等の SystemC コードは何ですか?
class foo
{
public:
int fooAttr1;
class bar
{
public:
int barAttr1;
};
};
質問 3: 属性/操作のスコープを指定するのに最適な場所はどこですか? (公開/保護/非公開)。