关于new 数组和带参数构造函数的问题

caijize 2007-04-26 10:52:24
我有一个带参数的构造函数的类,
如何使用new 来生成一个类的数组呢?(不要默认参数值的)
例如:
class a{
int i;

a(int n){
i = n;
}
};
我现在想new出两个数组,
第一个数组的所有成员的i的初始值是1,
第二个数组的所有成员的i的初始值是2.
请问应该怎么做呢?
...全文
619 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mars_man 2012-05-21
  • 打赏
  • 举报
回复
恩,语言语法上是没这货了,到语言这层次来讲,只能DIY了。[Quote=引用 5 楼 的回复:]
谢谢各位,
但我的类有一点复杂,
不能用模板,只能new出来.
[/Quote]
Saleayas 2012-05-19
  • 打赏
  • 举报
回复
尝试使用这个重载。

void* operator new(
std::size_t _Count,
void* _Ptr
)
max8899 2012-05-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

vector <a> x1(15,a(1));
vector <a> x2(16,a(2));
[/Quote]
小菜路过,什么意思,,能不能解释下?
wangyi010704327 2007-04-29
  • 打赏
  • 举报
回复
vector<a> x1(15,a(1));
vector<a> x2(16,a(2));
mymtom 2007-04-29
  • 打赏
  • 举报
回复
vector 好!
chenyu2202863 2007-04-29
  • 打赏
  • 举报
回复
支持楼上的楼上~
用vector
caijize 2007-04-29
  • 打赏
  • 举报
回复
谢谢各位,
但我的类有一点复杂,
不能用模板,只能new出来.
HewpKanXue 2007-04-26
  • 打赏
  • 举报
回复

vector<a> x1(15,1);
vector<a> x2(16,2);
lightnut 2007-04-26
  • 打赏
  • 举报
回复
一般是满足不了你的需求的!

不过, 就你这个特例, 可以模拟想要的效果:


#include <iostream>


template <int initValue>
class A
{
public:
int i;

A()
:i(initValue)
{
}

};

int main(int argc, char *argv[])
{
using namespace std;

A<10>* a1 = new A<10>[2];
A<20>* a2 = new A<20>[2];

for (int i=0; i<2; ++i) {
cout<<a1[i].i<<endl;
cout<<a2[i].i<<endl;
}

system("PAUSE");
return 0;
}

只不过a1, a2是两个不同类的数组了:))p
Generics 2007-04-26
  • 打赏
  • 举报
回复
没办法, 只能手工设置.


class A{
int i;
public:
A(int n) : i(n) {}
};

int main()
{

A a1[5] = {A(1), A(1), A(1), A(1), A(1)};
A b1[6] = {A(2), A(2), A(2), A(2), A(2), A(2)};
}
xlfddlfd 2007-04-26
  • 打赏
  • 举报
回复
NEW出来的一组类对象,要不没有构造函数,要不有缺省的构造函数,根据你的要求,好像达不到。。。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧