C++に投稿されたコード一覧

C++ test.nsl

declare test
{
	func_out f1(), f2(), f3();
}

module test
{
	reg count[4]=0b0000, c2[2]=0b00;
	proc_name aaa();

	if(count==0) aaa();
	count++;

	proc aaa {
		state_name st1,st2,st3;

		c2++;
		finish;

		state st1 {
			f1();
			goto st2;
		}
		state st2 {
			f2();
			goto st3;
		}
		state st3 {
			f3();
			goto st1;
		}
	}

}

C++ C++/クラス関数のチェーン

/*
	基幹システム・関数ポインタによる処理実行クラス
*/
#pragma once
#include <windows.h>
//規定!
//Exe関数は引数なしのint関数で無ければならない(intはエラーコードを還すのね)。

//ジョブ
struct LBLFunc {
	typedef		int (*PF)(void);	//命令への関数ポインタ
	PF			pfunc;				//
	LBLFunc*	next;				//次の命令
	virtual	int	Do(){ return pfunc(); };	//関数実行

	LBLFunc::LBLFunc(){
		pfunc = NULL;
		next = NULL;
	};
};

template<typename T> struct LBLMFunc : LBLFunc {

	typedef		int (T::*PMF)(void);	//命令への関数ポインタの定義
	PMF			pmfunc;		//関数ポインタ
	T*			Class;		//クラスのポインタ
	LBLFunc*	next;		//次の命令へ

	int	Do(){ return (Class->*pmfunc)(); };	//関数実行

	LBLMFunc(T* c, PMF pmf)	: LBLFunc()
	{
		Class = c;
		pmfunc = pmf;
		next = NULL;
	};
};

/*
	登録クラス
*/
class LBLFuncRegister {

	LBLFunc*	fstFunc;	//最初の命令
	LBLFunc*	lstFunc;	//最後の命令
	long m_Stacks;		//命令数

public:

	LBLFuncRegister(int (*pfunc)(void));
	~LBLFuncRegister();

	enum{
		MAX_FUNC = 1024	//最大命令数は1024
	};

    LPCVOID	AddRegist(int (*pfunc)(void));		//命令の登録(関数は名前があればポインタを解決できる)

	//命令の登録(メンバ関数は名前はオブジェクトと関数ポインタの両方を渡して登録)
	template<typename T>
	LPCVOID	AddRegist(int (T::*pmfunc)(), T* c)
	{
		LBLFunc* pLBLfunc = new LBLMFunc<T>(c,pmfunc);

		pLBLfunc->next = NULL;		//次は無い
		lstFunc->next = pLBLfunc;	//最後の命令の次はこれ。
		lstFunc = pLBLfunc;			//最後の命令を更新。

		return pLBLfunc;
	};

	void	DelAll();							//全ての命令の削除
	bool	DelRegist(LPCVOID pfuncAddress);	//命令の削除(登録時のアドレスからピンポイントで消す)
    void	DelRegist(int (*pdelfunc)(void));	//命令の削除(関数すべてを排除)

	void	ChkError(int error_code);		//エラーコードからエラーの内容を還す
	void	exe();	//全ての命令を実行
};

C++ こんにちわ世界

int _tmain(int argc _TCHAR* argv[])
{
	_tprintf(_T("Hello World!!"));
	return 0;
}

C++ test

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
}
Total Pages: 4 / 41234

よく投稿されているコード

タグ

最近投稿されたコード