社区
C++ 语言
帖子详情
关于new 数组和带参数构造函数的问题
caijize
2007-04-26 10:52:24
我有一个带参数的构造函数的类,
如何使用new 来生成一个类的数组呢?(不要默认参数值的)
例如:
class a{
int i;
a(int n){
i = n;
}
};
我现在想new出两个数组,
第一个数组的所有成员的i的初始值是1,
第二个数组的所有成员的i的初始值是2.
请问应该怎么做呢?
...全文
682
11
打赏
收藏
关于new 数组和带参数构造函数的问题
我有一个带参数的构造函数的类, 如何使用new 来生成一个类的数组呢?(不要默认参数值的) 例如: class a{ int i; a(int n){ i = n; } }; 我现在想new出两个数组, 第一个数组的所有成员的i的初始值是1, 第二个数组的所有成员的i的初始值是2. 请问应该怎么做呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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出来的一组类对象,要不没有构造函数,要不有缺省的构造函数,根据你的要求,好像达不到。。。
C++对象
数组
调用
带
参数
的
构造函数
本文探讨了在C++中如何使用两种不同方法为
数组
分配内存并调用
带
参数
的
构造函数
。第一种方法通过
new
操作符为每个元素创建对象,第二种方法先分配堆内存再调用
构造函数
。此外,还提供了使用初始化列表的新方法。
在c++中如何用
new
生成一个
构造函数
带
参数
的类
数组
(转载整理)
本文详细介绍了如何在C++中利用
new
关键字动态分配一个具有
构造函数
参数
的类
数组
,并讨论了相关内存管理和注意事项。
new
对象
数组
的时候怎么设置
构造函数
参数
在C++中,如果类有
带
参数
的
构造函数
,创建对象
数组
时不能直接通过
new
运算符初始化
参数
。正确做法是先分配内存,然后逐个使用placement
new
进行初始化。例如,对于User类,可以先分配User对象的内存,然后通过循环对每个对象进行初始化,传入所需的
参数
。
c++自定义类型的
数组
元素调用有参
构造函数
问题
探讨C++中如何在
数组
中使用有参
构造函数
,包括使用placement
new
和operator
new
进行内存分配及对象初始化,以及析构函数的正确调用。
C++
new
和malloc
本文介绍了C++中
new
和malloc的使用。
new
是运算符,用于动态分配内存,可调用
构造函数
初始化对象,有基本用法和高级特性,使用时需注意避免内存泄漏等
问题
。malloc是C库函数,需传入字节数,申请失败返回空。还阐述了二者在返回值、是否可重载等方面的区别。
C++ 语言
65,211
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章