私は C# プログラマーで、C++ をいじって Windows フォーム アプリケーションを作成しようとしています。
ユーザーが作成したクラスを利用する Windows フォームがあります。基本的に、パラメーターを取るコンストラクターを使用しようとしていますが、私のフォームではパラメーターでオブジェクトを初期化できません。これがコードです。私は完全に困惑しているので、誰かが私に問題を説明してくれることを願っています...
ここに私のヘッダーファイルがあります: BankAcct.h
public ref class BankAcct
{
private:
int money;
public:
BankAcct();
BankAcct(int);
void Deposit(int);
void GetBalance(int&);
};
そして私の定義ファイル: BankAcct.cpp
#include "StdAfx.h"
#include "BankAcct.h"
BankAcct::BankAcct()
{
money = 0;
}
BankAcct::BankAcct(int startAmt)
{
money = startAmt;
}
void BankAcct::Deposit(int depAmt)
{
money += depAmt;
}
void BankAcct::GetBalance(int& balance)
{
balance = money;
}
そして最後に私のメインフォーム。もちろん、すべてをコピーするわけではありませんが、新しい銀行口座オブジェクトを宣言して、たとえば 50 ドルの残高から始めようとしています。
private:
BankAcct myAccount(50); //does not work! WHY??
//private:
//BankAcct myAccount; //works
次に、フォームコンストラクターで私のコードは次のとおりです。
public:
frmBank(void)
{
InitializeComponent();
int bal;
myAccount.GetBalance(bal);
lblBankBalance->Text += Convert::ToString(bal);
}
私は frmBank.h の先頭に BankAcct.h ファイルを含めました。ここで他に何が間違っていますか? デフォルトのコンストラクター (銀行の残高をゼロから開始するコンストラクター) を使用すると、うまく機能します。次のエラー メッセージが表示されます。
エラー C2059: 構文エラー: '定数'
と
エラー C2228: '.GetBalance' の左側にはクラス/構造体/共用体が必要です
これについてのすべての助けに感謝します!!