静态数据成员(自身类类型)初始化问题
自定义一个类,简化如下:
class A
{
………
public:
A(int other_array[][10]){//通过数组other_array给成员array赋值}
static A a;
public:
int array[10][10];
};
int main()
{
A test;
return 0;
}
请问像这种自身类类型作静态数据成员应该怎么初始化(要对a.array赋值)比较好?有什么需要注意的地方?
另外,如果不调用成员函数,请问如何初始化a,使得能初始化a中的array数组(已知的一百个整数都要赋给它),最好不用构造函数和拷贝构造函数?
我知道在main函数前加上一句"A A::a[10][10];"可以通过编译,然后可以在其它地方对a进行赋值,但不知能不能只在一个地方就可以完成初始化和赋值?
比如可以"A A::a.array[4][4]={{1,4,6,8,9,10,55,24,58,31},{……},……};" //这种赋值方式是错的
这种方式也可以:"A A::a.array[4][4];"后面跟值初始化的语句。
简单点说,也就是初始化和赋值是一条语句或连续的语句,中间没有其它语句。
Thx!
class A
{
………
public:
A(int other_array[][10]){//通过数组other_array给成员array赋值}
static A a;
public:
int array[10][10];
};
int main()
{
A test;
return 0;
}
请问像这种自身类类型作静态数据成员应该怎么初始化(要对a.array赋值)比较好?有什么需要注意的地方?
另外,如果不调用成员函数,请问如何初始化a,使得能初始化a中的array数组(已知的一百个整数都要赋给它),最好不用构造函数和拷贝构造函数?
我知道在main函数前加上一句"A A::a[10][10];"可以通过编译,然后可以在其它地方对a进行赋值,但不知能不能只在一个地方就可以完成初始化和赋值?
比如可以"A A::a.array[4][4]={{1,4,6,8,9,10,55,24,58,31},{……},……};" //这种赋值方式是错的
这种方式也可以:"A A::a.array[4][4];"后面跟值初始化的语句。
简单点说,也就是初始化和赋值是一条语句或连续的语句,中间没有其它语句。
Thx!
...全文
相关推荐
static用法小结
**初始化**:静态变量在程序开始时初始化,如果未显式初始化,整型变量会被赋值为0,字符型变量会被赋值为空字符,而类类型的静态成员如果没有初始化,会调用默认构造函数。4.
c++面向对象复习题答案版.docx
静态数据成员用于统计对象数量或实现类级别的变量。虚基类解决了多重继承中的菱形问题,防止数据成员的重复拷贝。抽象类至少有一个纯虚函数,不能实例化,仅用于继承。
c++期末考试题
C++自定义数据类型:结构体、联合体、数组、枚举类型、类类型5. 类的静态成员的作用:类的静态成员用于解决同一个类的不同对象之间数据和函数的共享问题。
C++面向对象程序设计模拟试.doc
<< endl; } // 显示对象数};int Test::count = 0; // 初始化静态数据成员赋初值int main(void) { Test obj1, obj2, obj3; // 定义对象
2023年C++面向对象程序设计模拟试.doc
第一个程序涉及到静态数据成员的使用。静态数据成员在所有对象中共享,因此需要在类外部进行初始化。


