社区
C语言
帖子详情
如何创建动态对象数组?
fxniao
2003-03-30 10:34:03
比如:
class Person
{
int age;
public:
Person(int n)
{
age=n;
}
};
void main(void)
{
Person *p=new Person(30)[10];//要创建10个对象,而且用指定的构造函数创建
//但编译出错,为何? 还有什么方法可以实现这个目的呢?
}
...全文
592
20
打赏
收藏
如何创建动态对象数组?
比如: class Person { int age; public: Person(int n) { age=n; } }; void main(void) { Person *p=new Person(30)[10];//要创建10个对象,而且用指定的构造函数创建 //但编译出错,为何? 还有什么方法可以实现这个目的呢? }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
maurice1983
2003-04-07
打赏
举报
回复
class Person
{
int age;
public:
Person()
{
age=30;
}
};
void main(void)
{
Person *p=new Person[10];
}
fxniao
2003-04-07
打赏
举报
回复
Person():age(30)
{
}
实际上是和
Person()
{
age=30;
}
是一样的。
看罢各位观点,基本上是2种方法,一个是调用默认构造函数,另外就是用带缺省值的构造函数。但在具体创建对象时形式是一样的。
均为 new Person[10];//此处无法再指定参数了。
lymgf
2003-04-07
打赏
举报
回复
class Person
{
int age;
public:
Person():age(30)
{
}
};
void main(void)
{
Person *p=new Person[10];//要创建10个对象,而且用指定的构造函数创建
}
要给成员变量初始化的话一般要这样写。
lymgf
2003-04-07
打赏
举报
回复
上机,上机
tuxw
2003-04-06
打赏
举报
回复
动态分配数组好象是个经久不衰的话题,能不能先去看看页面顶部的帖子:多维数组如何在堆中声明 ??
bm1408
2003-04-06
打赏
举报
回复
楼上兄的回答是错误的!
TO: fireinsky(喜子)
在C++中,用new来创建一个对象数组时,只能调用缺省构造函数,也就是不带参数的构造函数。很自然,上面的方法要出错。
不一定非要是你你所说的那样!
example:
class person
{public:
person(*p="no name")
{
......
}
}
main()
{ person *p=new per[30];
}
它调用的有参数的!
fxniao
2003-04-06
打赏
举报
回复
clarkchu2002(chu) ( )
很有创意,用默认参数的方法解决了这个问题。
cxjddd
2003-03-30
打赏
举报
回复
我觉得,可以设定一个静态变量,在new之前,给这个静态变量赋值。再在构造函数里用到那个静态变量,就可以达到“传”参数的目的了。
cxjddd
2003-03-30
打赏
举报
回复
>>如果你没有定义构造函数,才会调用缺省构造函数;如果你定义了构造函数,new 就会调用你所定义的构造函数,而不是缺省构造函数。
<<我学得不是这样吧。如果我定义了一个带参数的构造函数,那么new从哪里找来这个参数?
clarkchu2002
2003-03-30
打赏
举报
回复
谁说 在C++中,用new来创建一个对象数组时,只能调用缺省构造函数,也就是不带参数的构造函数。?
下面的代码可以证明 new 可以调用带参数的构造函数。
#include <iostream.h>
class Person
{
int age;
public:
Person(int n = 30)
{
age=n;
}
void print()
{
cout<<age<<endl;
}
};
void main(void)
{
Person *p=new Person[10];//要创建10个对象,而且用指定的构造函数创建
//但编译出错,为何? 还有什么方法可以实现这个目的呢?
for(int i = 0 ; i<10; i++)
(p+i)->print();
}
如果你没有定义构造函数,才会调用缺省构造函数;如果你定义了构造函数,new 就会调用你所定义的构造函数,而不是缺省构造函数。
Gallen
2003-03-30
打赏
举报
回复
可以用vector来代替你的数组:
#include <vector>
....
std::vector<Person> Persons(10, Person(30));
小笨和漂向北方
2003-03-30
打赏
举报
回复
呵呵,那不是五颗星,只是五个三角而已:)只要你常来回答问题,你也能升到这的,只要2000分就可以了
fxniao
2003-03-30
打赏
举报
回复
micropentium6(小笨) ( ) 信誉:100
厉害啊,五星上将
小笨和漂向北方
2003-03-30
打赏
举报
回复
你可以给类设计一个赋值的函数的:)
fxniao
2003-03-30
打赏
举报
回复
只能用默认构造函数吗?
那太不方便了
小笨和漂向北方
2003-03-30
打赏
举报
回复
当你用这个方法创建数组时必须有默认的构造函数,也就是说Person(30)[10];这种语法是不允许的,你只能new person[10]//调用默认构造函数
fireinsky
2003-03-30
打赏
举报
回复
在C++中,用new来创建一个对象数组时,只能调用缺省构造函数,也就是不带参数的构造函数。很自然,上面的方法要出错。
thrillers
2003-03-30
打赏
举报
回复
new 后面的格式只能是 类型+名称 所以呢,new后面如果跟数组的话,只能写明数组元素的个数,不能再带参数,只能手工初始化
Have Fun!^__^
yeahspyme
2003-03-30
打赏
举报
回复
同意clarkchu2002(chu)!
lfph_cn
2003-03-30
打赏
举报
回复
在用NEW创建对象数组时只能使用无参数的构造函数
java定义
对象数组
初始化_怎么定义
对象数组
JAVA中怎么初始化
对象数组
?
java类怎样定义数组
对象数组
在c++编程中,怎么定义
对象数组
的指针?JAVA中怎么初始化
对象数组
?java中怎么
创建
对象数组
?比如我
创建
了一个学生类Sclass Student{ } 类中怎么
创建
学生类兑现数组?学生类: class A{ private String name; private int age; public String getName() { return name; } ...
动态
对象数组
创建
[code="c++"] //
动态
构建对象特点: /**** 1、在程序运行过程中
创建
和释放的变量或对象 位堆对象,分别用new 和 delete 运算符来完成。 2、堆
动态
对象为生存期可控对象,可以随时delete 释放 3、
动态
申请
对象数组
,该对象一定要有默认构造函数 或 构造函数最左形式参数一定要有默认值 ***/ #include using namespac...
C++
动态
创建
对象数组
使用运算符 new 也可以
创建
数组类型的对象,用 new 运算符
动态
创建
一维数组的语法形式为: new 类型名 [数组长度]; #include <iostream> using namespace std; class Point{ private: int x, y; public: Point(): x(0), y(0){ cout << "默认构造函数调用." << endl; } Point(int x, int y) :
java
对象数组
创建
对象数组
,初始化
对象数组
对象数组
的概念: 如果一个数组中的元素是对象类型,则称该数组为
对象数组
。 当需要一个类的多个对象时,应该用该类的
对象数组
来表示,通过改变下标值就可以访问到不同的对象。
对象数组
的定义和使用:
对象数组
的定义与一般数组的定义类似,但是需要为每一个元素实例化。
对象数组
的声明形式是: 类名
对象数组
名 [ ]; 为
对象数组
分配内存空间:
对象数组
名=new 类名[数组长度];//注意 :此处不是构...
C++
创建
动态
对象数组
已经建好一个Circle 类,并且对构造函数进行了重载。 //
创建
一个
对象数组
--并进行初始化参数--使用参数列表。 Circle *c = new Circle[3]{ 1.0,2.0,3.0 }; for (size_t i = 0; i < 3; i++) { // c是一个指向
对象数组
的首地址,类似普通数组,c[i]已经代表对象了。不能用-》运算符,而是用点点 cout << c[i].getArea() << endl; } ...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章