大量类成员变量的自动初始化问题-请教C++高手

tomPeakz 2002-05-29 02:55:41
大量类成员变量的初始化问题
我制作了一个类,基本上就和一个Struct 相似,主要是保存数据。
问题是里面有大量的成员变量需要初始化,比如置为空。
这些成员变量自己的构造函数并不清空自己,仅仅使用了随机值。
有无好的方法做这个比较麻烦的事情?比如使用一个for循环等等。
如果在构造函数里面手工加入代码比较烦人。
...全文
186 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
robothn 2002-05-29
  • 打赏
  • 举报
回复
CString 有一千个?
use CStringArray
jimconrad 2002-05-29
  • 打赏
  • 举报
回复
CString对象不用在构造函数里置为空。因为构造cstring对象的时候就调用它本身的构造函数,就是空的。
robothn 2002-05-29
  • 打赏
  • 举报
回复
wrong, 用初始化表吧
Test::Test()
:csT02(_T("param1")),... //CString其实可以用他们自己的缺省构造
{
}
jimconrad 2002-05-29
  • 打赏
  • 举报
回复
一千个吗?
手工构造吧。
再不就写一个专门用于初始化的宏,这样维护方便。
robothn 2002-05-29
  • 打赏
  • 举报
回复
试试这个:
Test test;
ZeroMemory(&test, sizeof(Test));
不知道对CString能不能用?
robothn 2002-05-29
  • 打赏
  • 举报
回复
to: amiaboy(什么时候我有钱)
答非所问,你说的是 "多个构造函数" 的情况
tomPeakz 2002-05-29
  • 打赏
  • 举报
回复
to robothn(雷鸟)
我的类里面除了有大量成员外,还有构造函数等一些方法。

to amiaboy(什么时候我有钱)
小弟没弄明白您是什么意思?
代码示例?
class Test
{
public:
CString csT02;
CString csT03;
CString csT04;
CString csT05;
CString csT06;
CString csT07;
CString csT08;
CString csT09;
//....
Test();
~Test();
}
怎么做比较省事?
AmiaBoy 2002-05-29
  • 打赏
  • 举报
回复
一般而言,对于一个类尽量使用初始化而不要在构造函数里赋值。

但有一种情况下,对类的数据成员用赋值比用初始化更合理。这就是当有大量的固定类型的数据成员要在每个构造函数里以相同的方式初始化的时候。

像你这种情况,你可以安全地将成员初始化列表用一个对普通的初始化函数的调用来代替。



robothn 2002-05-29
  • 打赏
  • 举报
回复
CMyStruct myStruct;
ZeroMemory(&myStruct, sizeof CMyStruct);
应该可以吧
tomPeakz 2002-05-29
  • 打赏
  • 举报
回复
我知道,我用UE 30秒钟搞定,我就是想知道是否有这种办法,比较底层的
办法。
morningsing 2002-05-29
  • 打赏
  • 举报
回复
手工加入也只需要一次呀,

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧