1
A
回答
5
假設你真的想能夠以這種方式分配(未初始化),你需要重載operator=
,但它的參數類型取決於內部的名單正是上大括號表示。
如果,例如,你總是會被路過的一對值,那麼你可以有一個operator=
重載需要std::pair
:
A& operator=(std::pair<int, int>);
這將是可調用就像這樣:
A a;
a = {5, 3};
如果你希望能夠通過任意長度列表,你可以有參數類型爲std::initializer_list
:
A& operator=(std::initializer_list<int>);
現在所有的以下的就可以了:
a = {};
a = {1, 2};
a = {5, 3, 5, 2, 3};
+0
我猜我想初始化它。我只是SDL_Rect()像這樣: SDL_Rect rect = {x,y,w,h}; 這就是我想要做的,但只有x和y在我自己的班級。 – Tallkotten 2013-05-03 14:12:27
1
由於C++ 11,你可以做到這一點只是讓使用STD作爲參數的構造函數:: initializer_list模板類,你可以重載運營商=以類似的方式。儘管如此,我並不知道C++ 03或C++ 98有任何技巧。從維基百科
Copypasta:
class SequenceClass {
public:
SequenceClass(std::initializer_list<int> list);
};
相關問題
- 1. 下推自動機(a^x b a^y c a^x + y)
- 2. 顯示x如果x顯示y如果y(壞標題我知道)
- 3. 爲什麼只有當我使用'x,y = y,x + y格式而不是'x = y; y = x + y'?
- 4. Qlikview - 計數如果A = X和B!= Y或Z
- 5. Excel公式如果x列B然後y,Z,K..etc列A
- 6. ASP如果x = y則包含文件a
- 7. 哪些javascript函數滿足:f(x,y)= f(a,b)IFF x = a和y = b?
- 8. 如果'z'中'x'和'y':
- 9. 如果x比y高3
- 10. Select * from A where(x,y)in(select x,y from B)
- 11. 如果x和y =>或者如果y =>或者如果y在C#
- 12. 如何使用matrix.preScale(x,y)
- 13. 我想要替換索引數組。示例$ array [x] [y] to $ array [y] [x]
- 14. 如果我想每隔x秒執行一次方法y次,我應該使用NSTimer嗎?
- 15. 如果我知道x,那麼搜索x + y = x * y的結果的最有效方法是什麼?
- 16. 如果對象(x,y)靠近其他對象(x,y)
- 17. x = 600 y = 1000如果x <= y將會出錯?
- 18. 如果x> y不工作,其中x大於y python 2.7
- 19. 如果Div Y包含Z,則顯示DIV X.然後,如果Div Y包含B,則顯示Div A
- 20. 如何將點A(x,y2)上的點A(x,y)的像素設置爲1?
- 21. 我有一個定價矩陣,我想使用X,Y值來查找價格
- 22. 如果A = X,則僅保留list1中的元素(A,B),其中(X,Y)是list2的元素。
- 23. 如何使用散列將「x」和「y」換成「y」和「x」
- 24. 當我運行這個cypher cql'return all(x in [] where any(y in x where x ='a'))'
- 25. 「如果X!」工作 - 「如果x或y!」不工作
- 26. A = [x; y']在Matlab中的意思?
- 27. Lua if A!=(X或Y或Z)?
- 28. SumIF列a = X AND列b = Y OR Z
- 29. 訪問模板類A中的X和Y,如模板<template <int X,int Y> class> class A;
- 30. 使用Matplotlib繪製3D曲面a * y + b * x + c
初始化,或者分配給它?此外,你將以什麼方式使用列表中的元素? – 2013-05-03 11:30:36
你甚至試過這樣做嗎?它會工作。 – 0x499602D2 2013-05-03 11:32:34
@ 0x499602D2:如果您的編譯器支持C++ 11樣式的支撐初始化器,並且該類型適用於這種分配,它將起作用。 – 2013-05-03 11:45:40