---
description: "Learn more about: defaultvalue"
title: "defaultvalue (C++ COM Attribute)"
ms.date: "10/02/2018"
f1_keywords: ["vc-attr.defaultvalue"]
helpviewer_keywords: ["defaultvalue attribute"]
ms.assetid: efa5d050-b2cc-4d9e-9b8e-79954f218d3a
---
# defaultvalue
Allows specification of a default value for a typed optional parameter.
## Syntax
```cpp
[ defaultvalue= value ]
```
### Parameters
*value*
The default value for the parameter.
## Remarks
The **defaultvalue** C++ attribute has the same functionality as the [defaultvalue](/windows/win32/Midl/defaultvalue) MIDL attribute.
## Example
The following code shows an interface method using the **defaultvalue** attribute:
```cpp
// cpp_attr_ref_defaultvalue.cpp
// compile with: /LD
#include
[export] typedef long HRESULT;
[export, ptr, string] typedef unsigned char * MY_STRING_TYPE;
[ uuid("479B29EE-9A2C-11D0-B696-00A0C903487A"), dual, oleautomation, helpstring("IFireTabCtrl Interface"), helpcontext(122), pointer_default(unique) ]
__interface IFireTabCtrl : IDispatch {
[bindable, propget] HRESULT get_Size([out, retval, defaultvalue("33")] long *nSize);
[bindable, propput] HRESULT put_Size([in] int nSize);
};
[ module(name="ATLFIRELib", uuid="479B29E1-9A2C-11D0-B696-00A0C903487A", version="1.0", helpstring="ATLFire 1.0 Type Library") ];
```
## Requirements
| Attribute context | Value |
|-|-|
|**Applies to**|Interface parameter|
|**Repeatable**|No|
|**Required attributes**|None|
|**Invalid attributes**|None|
For more information, see [Attribute Contexts](cpp-attributes-com-net.md#contexts).
## See also
[IDL Attributes](idl-attributes.md)
[Parameter Attributes](parameter-attributes.md)
[out](out-cpp.md)
[retval](retval.md)
[in](in-cpp.md)
[pointer_default](pointer-default.md)
[unique](unique-cpp.md)