其他分享
首页 > 其他分享> > 结构体构造函数(csdn上挑了个看得懂的搬的省得下次找叭到了)

结构体构造函数(csdn上挑了个看得懂的搬的省得下次找叭到了)

作者:互联网

1.构造函数
(1)只要参数和类型不完全相同,就可以定义任意多个构造函数,以适应不同的初始化场合。
(2)构造函数不需要写返回类型,且函数名与结构体名相同。
(3)结构体内会生成一个默认的构造函数(但不可见,如studentInfo(){}),如下,所以才可以直接定义studentInfo类型的变量而不进行初始化(因为它没有让用户提供任何初始化参数)。
构造函数:

struct studentInfo{
int id;
char gender;
//默认生成的构造函数
studentInfo(int _id,char _gender){
//赋值
id=_id;
gender=_gender;
}
//只初始化gender
studentInfo(char _gender){
gender=_gender;
}
};

上面的int _id的id只是变量名(下面的版本也是,改成其它当然也行),另外构造函数也可以直接化简成一行:

struct studentInfo{
int id;
char gender;
//默认生成的构造函数
studentInfo(int _id,char _gender): id(_id),gender(_gender){}
};
//这样就可以在需要时直接对结构体变量进行赋值
studentInfostu=studentInfo(10086,'M');

小栗子:

#include<stdio.h>
#include<iostream>
using namespace std;
struct Point{
int x,y;
Point(){}
Point(int _x,int _y):x(_x),y(_y){}//用以提供x和y的初始化
}pt[10];
int main(){
int num=0;
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
pt[num++]=Point(i,j);
}
}
for(int i=0;i<num;i++){
printf("%d,%d\n",pt[i].x,pt[i].y);
}
system("pause");
}

标签:studentInfo,int,gender,char,csdn,找叭到,id,构造函数
来源: https://www.cnblogs.com/ganl/p/16176742.html