struct A
{
int a;
};
struct B
{
int n;
A m;
};
怎么为B里的m初始化?
16 个解决方案
#1
可以给A加个构造函数
#2
怎么加?
#3
如果是C语言的话,那么可以给结构体B加一个初始化函数。
#4
在c++里 struct可以当class来用,struct默认的访问控制符为public,最好加个构造函数
#5
新手,不知道怎么给struct加构造函数。求解。
#6
struct A
{
int a;
public:
A():a(0){}
};
struct B
{
int n;
A m;
public:
B():n(0){}
};
就可以了
{
int a;
public:
A():a(0){}
};
struct B
{
int n;
A m;
public:
B():n(0){}
};
就可以了
#7
如果这时有新的类,如:
class C
{
pulibc:
c();
~c();
void Show();
}
我需要在C类的Show()函数,用到结构体B,那这时如何如初始化B中的m呢?
#8
B中的m已经调用了A的默认构造了,已经初始化好了
#9
这个问题我也遇到过,来学习一下
#10
在debug下,你说的这个是成立的,我当时也这么想。
但在release下,总是提示:Access violation writing location
这个错误
#11
定义一个B的变量b,这样应该可以初始化吧:(b.m).a
#12
我这里Debug和Release都是好的
#13
struct A
{
int a;
};
struct B
{
int n;
A m;
};
main()
{
B BB;
BB.m = 99999;
}
{
int a;
};
struct B
{
int n;
A m;
};
main()
{
B BB;
BB.m = 99999;
}
#14
初始化列表
B x = { 1, {2} };
#15
虽然没有我想要的答案,但还是结贴吧。
#16
这个讨论不错,IAR可以不对结构体变量初始化,Keil不初始化老报警“使用前没赋值”
#1
可以给A加个构造函数
#2
怎么加?
#3
如果是C语言的话,那么可以给结构体B加一个初始化函数。
#4
在c++里 struct可以当class来用,struct默认的访问控制符为public,最好加个构造函数
#5
新手,不知道怎么给struct加构造函数。求解。
#6
struct A
{
int a;
public:
A():a(0){}
};
struct B
{
int n;
A m;
public:
B():n(0){}
};
就可以了
{
int a;
public:
A():a(0){}
};
struct B
{
int n;
A m;
public:
B():n(0){}
};
就可以了
#7
如果这时有新的类,如:
class C
{
pulibc:
c();
~c();
void Show();
}
我需要在C类的Show()函数,用到结构体B,那这时如何如初始化B中的m呢?
#8
B中的m已经调用了A的默认构造了,已经初始化好了
#9
这个问题我也遇到过,来学习一下
#10
在debug下,你说的这个是成立的,我当时也这么想。
但在release下,总是提示:Access violation writing location
这个错误
#11
定义一个B的变量b,这样应该可以初始化吧:(b.m).a
#12
我这里Debug和Release都是好的
#13
struct A
{
int a;
};
struct B
{
int n;
A m;
};
main()
{
B BB;
BB.m = 99999;
}
{
int a;
};
struct B
{
int n;
A m;
};
main()
{
B BB;
BB.m = 99999;
}
#14
初始化列表
B x = { 1, {2} };
#15
虽然没有我想要的答案,但还是结贴吧。
#16
这个讨论不错,IAR可以不对结构体变量初始化,Keil不初始化老报警“使用前没赋值”