WebSphere Message Service Clients: Web Services Client for C++, Version 1.1 作業系統: Linux, Windows

複式類型和複式類型陣列

在 Web 服務中使用複式類型時,其規則和簡式類型相同。

複式類型

下列範例顯示從屬於複式類型的 WSDL 所產生的類別。如本範例中所示, 複式類型在使用 set 和 get 方法時,只會採用資料的表層副本。

class STORAGE_CLASS_INFO ComplexType
{
public:
	class xsd__string	Message;
	class xsd__int	MessageSize;

	xsd__string	getMessage();
	void		setMessage( xsd__string InValue);
	xsd__int	getMessageSize();
	void		setMessageSize( xsd__int InValue);

用戶端必須記住,在使用指向物件的指標時, 只會複製指標,而不會製作指標的複本。比方說,如果複式類型包含字串, 用戶端可以藉由建立本端字串,然後在複式物件中使用 set 方法來將該字串複製到物件中, 以設定字串的內容。

下列範例顯示在使用複式類型時可以套用的限制:

xsd__int	iStringLength = strlen( “Hello World”);
xsd_string	myNewString = new char[iStringLength + 1];

strcpy( myNewString, “Hello World”);

myComplexType.setMessage( myNewString);

delete myNewString; // 執行這個動作時,myComplexType.Message 將指向
// 無效的記憶體。

另一種方式是:

delete myComplexType; // 執行這個動作時,myNewMessage 將指向無效的
記憶體。

在方法呼叫中使用複式類型的參數時,適用的規則與簡式類型的規則相同。以下是這些規則:

複式類型的陣列

如果 WSDL 說明在陣列中使用的複式類型, WSDL2Ws 工具會使用字尾為 "_Array" 的複式名稱類型, 來產生對應的陣列物件。


Reference topic

使用條款 | 此頁的評等

「時間戳記」圖示前次更新: 28 Apr 2006
(C) Copyright IBM Corporation 2005. All Rights Reserved.
本資訊中心採用 Eclipse 技術。(http://www.eclipse.org)