代入オペレータ

  確保されたメモリへ文字列を複写する



  
// *********************************************************
// クラス定義
// *********************************************************
class MyString  
{
public:
	MyString();
	virtual ~MyString();
	void operator = ( LPTSTR lpString );

	LPTSTR lpBuff;
};

// *********************************************************
// 代入オペレータ
// *********************************************************
void MyString::operator = ( LPTSTR lpString )
{
	lstrcpy( lpBuff, lpString );
}
  



  実行サンプル

  
int main(int argc, char* argv[])
{
	MyString a;

	a = "ABC";

	printf("%s\n", a.lpBuff );

	return 0;
}
  



  オブジェクト

■ オブジェクト同士の代入


MyString a,b;
a = b;



  
// *********************************************************
// オブジェクト複写
// *********************************************************
void MyString::operator = ( MyString &obj )
{
	lstrcpy( lpBuff, obj.lpBuff );
}
  

■ オブジェクトのポインタより代入


MyString a;
MyString *x = new MyString();

*x = "abc";
a = x;

printf( "%s\n", a.lpBuff );

delete x;


MyString a;
MyString *x = new MyString();

x->operator = ( "abc" );
a.operator = ( x );

printf( "%s\n", a.lpBuff );

delete x;



  
// *********************************************************
// オブジェクトのポインタより複写
// *********************************************************
void MyString::operator = ( MyString *obj )
{
	lstrcpy( lpBuff, obj->lpBuff );
}
  



  整数

  
// *********************************************************
// 整数複写
// *********************************************************
void MyString::operator = ( int nData )
{
	wsprintf( lpBuff, "%ld", nData );
}
  



  実数

  
#include <comdef.h>

// *********************************************************
// 実数複写
// *********************************************************
void MyString::operator = ( double nData )
{
	_variant_t vWork = nData;
	lstrcpy( lpBuff, (LPTSTR)(_bstr_t)vWork );
}
  



  列挙定数

enum MyEnum { mysSysDate = 1, mysYear = 2, mysMonth = 3, mysDay = 4 };

列挙定数を用いて、いろいろな文字列を作成するインターフェイスを作成します

  
// *********************************************************
// 列挙定数複写
// *********************************************************
void MyString::operator = ( MyEnum nType )
{
	switch( nType ) {
	case mysSysDate:
		{
			SYSTEMTIME st;

			GetLocalTime( &st );

			wsprintf(
				lpBuff,
				"%04d/%02d/%02d",
				st.wYear,
				st.wMonth,
				st.wDay
			);
		}
		break;
	}
}
  

MyString a;

a = mysSysDate;

printf( "%s\n", a.lpBuff );














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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ