キャスト演算子のオーバーロード

  オブジェクトを文字列扱いする為に



MyString a;

a = "ABC";

printf( "%s\n", (LPTSTR)a );

このような記述を実行できるようにする為に行います。
(※ 演算子のオーバーロードでは、関数に型を指定する事はできません)

  
// *********************************************************
// クラス定義
// *********************************************************
class MyString  
{
public:
	MyString();
	virtual ~MyString();
	void operator = ( LPTSTR lpString );
	void operator = ( MyString &obj );
	void operator = ( MyString *obj );
	void operator = ( int nData );
	void operator = ( double nData );
	void operator = ( MyEnum nType );
	operator LPTSTR ();

	LPTSTR lpBuff;
};

// *********************************************************
// キャスト演算子のオーバーロード
// *********************************************************
MyString::operator LPTSTR ()
{
	return lpBuff;
}
  



  文字列 から 整数 への変換



  
#include <shlwapi.h>
#pragma comment( lib, "shlwapi.lib" )

// *********************************************************
// キャスト演算子のオーバーロード
// *********************************************************
MyString::operator int ()
{
	return StrToInt(lpBuff);
}
  

us Microsoft --> StrToInt



  文字列 から 実数 への変換

  
#include <comdef.h>

// *********************************************************
// キャスト演算子のオーバーロード
// *********************************************************
MyString::operator double ()
{
	_variant_t vWork = lpBuff;
	double d;

	try {
		d = (double)vWork;
	}
	catch ( _com_error &e ) {
		d = 0;
	}
	return d;
}
  













  infoboard   管理者用   
このエントリーをはてなブックマークに追加





フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ