C++中类中的结构体数据成员怎么用构造函数初始化
structTime{inthour;intminute;AOPap;Time(inth=0,intmi=0,AOPa=AM):hour(h),minute(mi),ap...
struct Time
{
int hour;
int minute;
AOP ap;
Time(int h=0,int mi=0,AOP a=AM):hour(h),minute(mi),ap(a){}
};
class Date
{
private:
int year;
int month;
int day;
Time time;
public:
Date(int y=1,int m=1,int d=1):year(y),month(m),day(d){}
//Date(int y=1,int m=1,int d=1,int h=0,int mi=0,AOP a=AM):year(y),month(m),day(d),(h,mi,a){} //这样没用 展开
{
int hour;
int minute;
AOP ap;
Time(int h=0,int mi=0,AOP a=AM):hour(h),minute(mi),ap(a){}
};
class Date
{
private:
int year;
int month;
int day;
Time time;
public:
Date(int y=1,int m=1,int d=1):year(y),month(m),day(d){}
//Date(int y=1,int m=1,int d=1,int h=0,int mi=0,AOP a=AM):year(y),month(m),day(d),(h,mi,a){} //这样没用 展开
2个回答
展开全部
Date()里面的用你自定义的结构体类型做形参的类型!
class Date
{
public:
Date(struct Time *t)
{
//这里是实现功能函数体,也就是初始化结构体数据成员!
}
private:
struct Time *T;//要初始化的结构体数据成员!
//Date类里其他成员我就省略没写了!...
}
希望对你有用,谢谢!
希望多看看C++类、构造函数等相关内容!
class Date
{
public:
Date(struct Time *t)
{
//这里是实现功能函数体,也就是初始化结构体数据成员!
}
private:
struct Time *T;//要初始化的结构体数据成员!
//Date类里其他成员我就省略没写了!...
}
希望对你有用,谢谢!
希望多看看C++类、构造函数等相关内容!
追问
你的意思是只能这样传递是吧:
#include
using namespace std;
struct time
{
int hour;
int minute;
};
class date
{
private:
time ti;
public:
date(time t):ti(t){}
};
int main()
{
time t;
t.hour=12;
t.minute=00;
date d(t);
return 0;
}//这样不报错
那可不可以有直接date(12,00)传递的方法啊?
追答
可以当然是可以!就看你形参是什么类型的了!你初始化的到底是不是结构体变量!
其实构造函数和自定义的一般函数差不多,就是和类同名,没有返回值,用于实例化类时初始化下类里的成员!
所以关键还是看你的构造函数的形参类型,由于你是要初始化的成员主要是一个结构体,所以用结构体类型作为形参类型比较清晰!
在你的第一个问题里面显然是把一般变量和结构体变量里的变量弄混了!这样怎么能初始化结构体变量!
解释的挺啰嗦的,希望能有帮助!
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询