作者littleshan (我要加入剑道社!)
看板C_and_CPP
标题Re: [问题] new 多个 instance 但是constuctor又要 …
时间Tue Jun 9 14:23:39 2009
※ 引述《EragonJ (龙~翱翔天际)》之铭言:
: 不知道这样子下标题对不对
: 以下是小弟遇到的一个问题
: class Time{
: private:
: int hour;
: int min;
: int sec;
: public:
: Time(int a,int b,int c){hour = a;min = b;sec = c;}
: }
: void main(){
: Time *t = new Time[5]; //***
: }
: 因为一new下去,它们那五个instance就会去call自己的constructor
: 但是又没有办法在同时给他们值传进去
: 但是如果只有一个的话还可以 Time *t = new Time(10,20,30) // ok
: 不知道要怎麽解决这个问题呢?? 爬文没有看到类似的讨论
: 如果有什麽用语或是观念有误的,麻烦指正我一下,感谢大家!!
vector<Time> t( 5, Time(10, 20, 30) );
这样 t 这个阵列会包含五个元素,每个都是 10:20'30
如果五个元素的值不同,在 C++ 中会比较辛苦:
vector<Time> t;
t.push_back( Time(1, 2, 3) );
t.push_back( Time(4, 5, 6) );
...
C++ 的新规格:C++0x 有提出 initializer list 的做法,
可能会变成这个样子:
vector<Time> t = { {1, 2, 3}, {4, 5, 6}, ... };
不过目前语法尚未完全确定,也没有 compiler 支援。
以上、报告完毕
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.87.151.2
1F:推 EragonJ:所以就目前array的角度而不用vector,是做不到的吗? 06/09 14:29