這可能是某些情況下的實例化(定義)嗎?是「T var();」總是在C++中的函數聲明?
3
A
回答
3
它總是C++(和C)中的函數聲明,除非它作爲參數聲明出現,在這種情況下它聲明瞭函數指針。
逆無法雖然說明:
是 「T變種;」總是在C++中的對象聲明?
不,它是沒有,因爲T
可以是一個功能類型,在這種情況下var
將被宣佈爲一個功能,當它顯示爲一個參數聲明,如上面除外。
0
是
「T var();」
總是在C++中的函數聲明?
取決於上下文。
背景1:
template<typename T>
void func()
{
T var(); // function declaration
}
背景2:
template<typename T>
void func(T var()) // equivalent to `template<typename T> void func (T()) { } `
{
}
在這種情況下返回func
空隙並需要作爲一個參數的指針的函數返回T
。省略var
是可選的。
什麼
T var(1)
;,是實例還是一樣T var = T(1)
;
T var(1)
是直接初始化而T var = T(1)
是拷貝初始化。在這兩種情況下,對象var
都被初始化爲T(1
)。
如果T
是用戶定義的類型,後一種情況下需要可訪問的複製構造函數,而前者不需要。
相關問題
- 1. 在函數外聲明var
- 2. 在函數中聲明的var在多個函數調用中是否存在?
- 3. sizeof(var)總是在C中工作嗎?
- 4. C++中的函數聲明
- 5. 什麼是函數聲明中的DEFAULT_CC?
- 6. 在C#中,什麼是<T>方法聲明之後?
- 7. C++函數聲明
- 8. 聲明函數在C++
- 9. 是否需要在頭文件中聲明所有C函數
- 10. 聲明在C++中的成員函數
- 11. 什麼是一個問號的意思是在C#中的函數聲明
- 12. 爲什麼VAR聲明快不是讓
- 13. Javascript變量聲明:什麼是「var myVariable = {}」?
- 14. 在javascript中聲明函數時,我必須使用`var`嗎?
- 15. Var聲明在Javascript
- 16. var聲明期望聲明
- 17. GTMAppAuth 'presentingViewController' 不是在函數聲明
- 18. crypt()函數是在unistd.h還是crypt.h中聲明的?
- 19. 在Scala中聲明一個使用def或var的函數
- 20. c函數聲明中的「...」是什麼意思?
- 21. Is []是否也是C中的聲明符(當用於參數聲明時)?
- 22. 函數聲明
- 23. 聲明函數的DataType是否更好?
- 24. 函數聲明後的「 - >」是什麼?
- 25. 在C++中聲明operator +函數
- 26. 「回聲是$ var」 VS「回聲($ VAR)」
- 27. 在C++類中重新聲明函數
- 28. 用var或不用var聲明一個函數會更好嗎?
- 29. 含義<T,U延伸T>在Java函數聲明
- 30. 什麼是在函數聲明之前有一個〜的函數?
'T var(1);'? – lex 2010-12-18 02:57:23
對不起,你的更新似乎沒有迴應我的評論? – lex 2010-12-18 03:10:23
@lex:當括號不爲空時,它顯然取決於它們中的內容。 '1'看起來不像參數聲明,但像T構造函數的int參數。 – 2010-12-18 03:24:04