在类中有一个枚举类型变量,如何让此变量有默认值
在类中有一个枚举类型变量,如何让此变量有默认值如果创建一个类,不给此变量值,默认是负多少多少,我想让它默认是0,请问如何解决
以下是类的代码
#pragma once
#include <iostream>
#include <string>
using namespace std;
enum ESex
{
ESex_Null,
ESex_FMale,
ESex_Male,
};
class CStudent
{
public:
string name;
int num;
ESex sex ;
int age;
};
以下是主程序代码
#include <iostream>
#include <string>
#include "Student.h"
using namespace std;
int main()
{
CStudent stu_1;
stu_1.sex = ESex_Male;
cout << stu_1.sex << endl;
CStudent stu_2 = {"zhangsan", 1002, ESex_FMale, 23};
cout << stu_2.sex << endl;
CStudent stu_3;
cout << stu_3.sex << endl;
return 0;
}
应该可以直接在定义类的时候赋予默认值 ESex_Null 吧?
#pragma once
#include <iostream>
#include <string>
using namespace std;
enum ESex
{
ESex_Null,
ESex_FMale,
ESex_Male,
};
class CStudent
{
public:
string name;
int num;
ESex sex = ESex_Null;
int age;
}; Twilight6 发表于 2022-5-12 11:31
应该可以直接在定义类的时候赋予默认值 ESex_Null 吧?
这跟枚举无关,报错已经说明你没有相应的构造函数 用构造函数初始化, 傻眼貓咪 发表于 2022-5-12 12:11
这跟枚举无关,报错已经说明你没有相应的构造函数
那怎么解决呢 jhq999 发表于 2022-5-12 12:30
用构造函数初始化,
构造函数也不行,也报错 踏雪失踪 发表于 2022-5-12 14:25
构造函数也不行,也报错
class CStudent
{
public:
string name;
int num;
ESex sex;
int age;
CStudent()
{
sex=ESex_Null;
}
CStudent(string n,
int nm,
ESex s,
int a)
{
name=n;
num=nm;
sex=s;
age=a;
}
};
int main()
{
CStudent stu_1;
stu_1.sex = ESex_Male;
cout << stu_1.sex << endl;
CStudent stu_2 ("zhangsan", 1002, ESex_FMale, 23);
cout << stu_2.sex << endl;
CStudent stu_3;
cout << stu_3.sex << endl;
return 0;
} jhq999 发表于 2022-5-12 14:32
的确可以了,一开始我只写了一个没参的构造函数,还是报错,按照你的代码,把全参的构造函数写上就不报错了。是为什么啊 踏雪失踪 发表于 2022-5-12 15:43
的确可以了,一开始我只写了一个没参的构造函数,还是报错,按照你的代码,把全参的构造函数写上就不报错 ...
CStudent stu_2 = {"zhangsan", 1002, ESex_FMale, 23};//////有构造函数以后就不能这么初始化了 jhq999 发表于 2022-5-12 16:02
谢谢解答
页:
[1]