2016-10-21 3 views
-1

私はHDLからC++への変換でハンドルを取得しようとしています。 UbuntuでVerilatorを使用した変換は簡単ですが、1つのデータ型がわかりやすいです。関数のパラメータとして使用するクラスの型を初期化する方法

階層の最上位のコードは...

#include <iostream> 
#include "VDorQ24Syms.h" 
#include "VDorQ24.h" 

using namespace std; 
// FUNCTIONS 
VDorQ24Syms::VDorQ24Syms(VDorQ24* topp, const char* namep) 
    // Setup locals 
    : vm_namep(namep) 
    , vm_activity(false) 
    , vm_didInit(false) 
    // Setup submodule names 
{ 
    // Pointer to top level 
    tOPp = topp; 
    // Setup each module's pointers to their submodules 
    // Setup each module's pointer back to symbol table (for public functions) 
    tOPp->Vconfigure(this, true); 
    // Setup scope names 
} 

関数にデータを渡して

VDorQ24Syms::VDorQ24Syms(VDorQ24* topp, const char* namep) 

は私が届かないものです。 2番目のパラメータはわかりやすいです。最初はそうではない。

これは私が渡すことを期待しているコンパイラは何ですか?どのデータ型ですか?

私はそう...

VDorQ24* randomCharacter; 
if (VDorQ24Syms(randomCharacter, szAscii) == /*condition*/) 
{ 
    return /*value*/; 
} 

などのデータを渡したい。しかし 'randomCharacter' は初期化されていません。

VDorQ24* randomCharacter = /*How do I initialize this?*/; 
+0

'VDorQ24'へのポインタ。 '' VDorQ24.h ''ヘッダーファイルでクラス定義を調べてみてはどうでしょうか? –

+0

私は変数を初期化する方法として問題を再定義しました。何か案は? – loumbut5

+0

@ loumbut5あなたのプログラムは成熟していません。二重アンダースコアで始まるか、アンダースコアと大文字で始まる名前は、標準的な実装のために予約されています。これはどの範囲にも当てはまります。 –

答えて

0

例は完全ではありませんが、これは役に立ちます。

あなたの変数randomCharacterはクラスVdorQ24のインスタンスではなく、あなたのクラスへのポインタです。

あなたは、変数を初期化したい場合は、nullptrに設定します。

VdorQ24* randomCharacter = nullptr; // now you can be 100% certain that it's null. 

をあなたはacually VdorQ24の新しいインスタンスを作成したい場合、あなたは、単にポインタと使用価値を忘れることができます。でも、

VDorQ24 randomCharacter{param1, param2}; 

実際には、任意のタイプは、この構文で初期化することができます:あなたは、コンストラクタにパラメータを送信する場合は

// Not a pointer, initialize the instance of your class directly. 
VDorQ24 randomCharacter; 

//    v---- Here we send a pointer to your variable using the '&' operator. 
if (VDorQ24Syms(&randomCharacter, szAscii) == /*condition*/) 
{ 
    return /*value*/; 
} 

は、この構文を使用することができます。ここでは、デフォルトのコンストラクタを呼び出しますintおよび配列:

int a{1}; 

float b[] = {1.f, 2.f, 3.f}; 
+0

私が探していた説明とまったく同じです。 – loumbut5

+0

均一な初期化を検索する –

関連する問題