c++ 里面struct可以new么?还是可以直接一起赋值?在类里面如何赋值?

定义了一个structtypedeffloatvertex3f[3];在一个类里面应用这个structA{constvertex3fposition;inty;}如何初始... 定义了一个struct
typedef float vertex3f[3];
在一个类里面应用这个struct
A{
const vertex3f position;
int y;
}

如何初始化这个类
例如:
A::A()
:position({minrand*width, height+size.0,0.0}),y(0)
{
....
}
计算机老报 position哪一行有错

顺便问一下:
c++ 里面struct可以new么?还是可以直接一起赋值?在类里面如何赋值?
展开
 我来答
lbxthinker
推荐于2017-11-22
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
错误的原因是 position只是一个指向float类型常量的指针,所以只能用指针初始化

c++ 里面struct可以new,
另外:

C++中,struct关键字与Class关键字基本是一样的,但是,有两点不同
1 struct定义的数据类型里面所有成员默认级别都是共有的,而class里面所有成员默认级别都是私有的
2 在模板定义中,只能用class 或者typename 而不能用struct

参考资料: C++官方标准

workingroy
2009-08-19 · TA获得超过690个赞
知道小有建树答主
回答量:305
采纳率:0%
帮助的人:258万
展开全部
结构体可以NEW,如果是NEW出来的,分配的空间在堆里面,需要你手动释放,否则在分配的内存栈里面,离开作用域就自动回收了。
结构体赋值,应该用memcpy,并且有可能需要深拷贝。

A{
A();
~A();
vertex3f *position;
int y;
}
A::A()
{
position =NEW vertex3f ();
}

A::~A()
{
if(position )
delete position ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
古道青锋鸣残阳
2009-08-19
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
你这个结构体使用不用那么复杂,想用的话先建个对象,如:
A aExample;
然后赋值就这样:
aExample.position = XXXXXXX;
aExample.y=XXXXXX;
结构体定义完了拿来用就行,不用初始化,用的时候必须自己定义一个对象。而不是用结构体本身
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e9042513a
2009-08-19 · TA获得超过6984个赞
知道大有可为答主
回答量:2388
采纳率:0%
帮助的人:3502万
展开全部
初始化类的const 数组 成员

const float f[3]={1.0f, 2.0f, 3.0f};//用来初始化的数组

class a{
private:
const float * const position; //定义成指针
int y;
public:
a(void);
};

a::a(void) : position(f),y(0)//初始化列表中用f初始化position
{
;
}

参考资料: 原创

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式