struct 结构体初始化问题

C语言 码拜 9年前 (2016-04-16) 1183次浏览
struct bRegAccount
{
int Number;
TCHAR ID[30];
TCHAR PassWord[30];
TCHAR PassWordOK[30];
TCHAR TwoPassWord[30];
public:
bRegAccount()     //问一下假如创建对象是不是直接走这个构造函数直接初始化?
{
Number = 0;
ID[30] = “\0”;
PassWord[30] = “\0”;
PassWordOK[30] = “\0”;
TwoPassWord[30] = “\0”;
}
};
=================================================================================
struct bRegAccount
{
int Number;
TCHAR ID[30];
TCHAR PassWord[30];
TCHAR PassWordOK[30];
TCHAR TwoPassWord[30];
public:
//问一下这样初始化为什么报错,哪错了。
bRegAccount() :Number(0),ID[30](“\0”),PassWord[30] (“\0”),PassWordOK[30] (“\0”),TwoPassWord[30] (“\0”){}
};
本人想直接创建对象, 然后不再初始化成员变量,直接就可以用成员了。
解决方案

20

ID[30] = "\0";
PassWord[30] = "\0";
PassWordOK[30] = "\0";
TwoPassWord[30] = "\0";

lz你这是在玩火….这几行是什么意思….

40

用_tcscpy赋值
用_stprintf打印
定义了UNICODE,TCHAR就是wchar_t。
没定义UNICODE,TCHAR就是char

40

其次,构造函数初始列表初始化的是成员变量,而不是其他,所以你只能这样写:

struct bRegAccount
{
	int Number;
	TCHAR ID[30];
	TCHAR PassWord[30];
	TCHAR PassWordOK[30];
	TCHAR TwoPassWord[30];
public:
	bRegAccount() :Number(0),ID(""),PassWord(""),PassWordOK(""),TwoPassWord(""){}
};

20

引用:

其次,构造函数初始列表初始化的是成员变量,而不是其他,所以你只能这样写:

struct bRegAccount
{
	int Number;
	TCHAR ID[30];
	TCHAR PassWord[30];
	TCHAR PassWordOK[30];
	TCHAR TwoPassWord[30];
public:
	bRegAccount() :Number(0),ID(""),PassWord(""),PassWordOK(""),TwoPassWord(""){}
};

本人在VS这样试还是不行的
struct 结构体初始化问题

20

引用:
Quote: 引用:

用_tcscpy赋值
用_stprintf打印
定义了UNICODE,TCHAR就是wchar_t。
没定义UNICODE,TCHAR就是char

本人是想就是说,定义了对象以后直接用里面成员,不需要在初始化了,前提是在结构体那里构造函数的时候初始化

malloc / calloc申请内存,当用malloc的时候用 memset 初始化内存空间,calloc本身包含初始化的作用


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明struct 结构体初始化问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)