首页 > 编程语言 >c++ 结构体的构造函数

c++ 结构体的构造函数

时间:2024-05-21 14:52:11浏览次数:12  
标签:std int gender age c++ student 构造函数 结构

结构体中构造函数

1、不使用构造函数

 1 #include<iostream>
 2 
 3 struct student {
 4     
 5     int age;
 6     std::string gender;
 7 
 8 }Liu;
 9 
10 int main() {
11     Liu.age = 20;
12     Liu.gender = "man";
13 
14     std::cout << Liu.age << '\n' << Liu.gender;
15 
16     return 0;
17 
18 }

通过上述代码对结构体变量单独赋值,也可以整体赋值:

 1 Liu = { 20, "man" }; 

当变量过多的时候不方便,因此使用构造函数。

2、使用构造函数

 1 #include<iostream>
 2 #include<string>
 3 
 4 struct student {
 5     
 6     int age;
 7     std::string gender;
 8 
 9     // 单独赋值
10     student(int _age) : age(_age) {}
11     student(std::string _gender) : gender(_gender) {}
12     // 同时赋值
13     student(int _age, std::string _gender) : age(_age), gender(_gender) {}
14 
15 
16 };
17 
18 int main() {
19     student Liu(20, "man");
20     std::cout << Liu.age << '\n' << Liu.gender;
21     return 0;
22 }

这样可以单独初始化某些变量或者全部变量。

3、默认构造函数和自定义构造函数

 1 #include<iostream>
 2 #include<string>
 3 
 4 struct student {
 5     
 6     int age;
 7     std::string gender;
 8 
 9     // 默认构造函数
10     student(){};
11 
12     // 单独赋值
13     student(int _age) : age(_age) {}
14     student(std::string _gender) : gender(_gender) {}
15     // 同时赋值
16     student(int _age, std::string _gender) : age(_age), gender(_gender) {}
17 
18 
19 }Liu;
20 
21 int main() {
22     Liu = student(20, "man");
23     std::cout << Liu.age << '\n' << Liu.gender;
24     return 0;
25 }

如果将默认构造函数和自定义构造函数同时使用,就可以不初始化而直接定义变量。

 

标签:std,int,gender,age,c++,student,构造函数,结构
From: https://www.cnblogs.com/6S6B/p/18204044

相关文章

  • C++——类
    C++学习类一、定义class类名{public://外界可以直接访问或者调用private://不能被外部所访问或调用,只能被本类内部访问};二、类的成员函数类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的一个成......
  • c++菱形继承、多态与类内存模型
    目录1.菱形继承1.1.菱形继承的问题1.2.解决办法2.虚函数与多态2.1.普通函数不能实现多态2.2.虚函数(子类重写)+父类指向子类——实现多态2.3.多态原理3.c++内存模型4.参考1.菱形继承先看下面的例子,SheepTuo同时继承了Sheep和Tuo,而他们同时继承Animal类#include<iostream>usin......
  • C++基础知识学习笔记(1)
    资料来源https://www.bilibili.com/video/BV1et411b73Z/?spm_id_from=333.337.search-card.all.click&vd_source=cc561849591f6a210152150b2493f6f3简单知识点创建项目用VS创建了一个C++的空项目。在【源文件】中创建一个cpp文件书写以下代码并运行#include<iostr......
  • C++常用模板
    常用模板:1.组合数(注意\(N\)与\(mod\))点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstllN=1e3+10,mod=998244353;lln,a[N],jc[N],dp[N],ans;voidinit(){ jc[0]=1; for(inti=1;i<N;i++)jc[i]=jc[i-1]*i%mod;}llksm......
  • 常见的网络结构模式、CS、BS模型、七层协议、五层协议
    【一】常见的网络结构模式【1】CS模型C是英文单词“Client”的首字母,即客户端的意思C/S就是“Client/Sever”的缩写,即“客户端/服务器”模式。例如:拼多多APP、淘宝APP、PC上的有道云笔记等。【2】BS模型B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“S......
  • C++的四种智能指针及简单实现
    C++的四种智能指针及简单实现参考:C++智能指针讲解及模拟实现一、auto_ptrauto_ptr有拷贝语义,拷贝后源对象变为空指针,可能引发严重问题template<classT>classmy_unique_ptr{private:T*_ptr;public://普通构造函数my_unique_ptr(T*ptr):_ptr(ptr){}......
  • C++算法刷题基础
    1.main函数的返回类型一定是int2.C++语言为我们准备了一组内置库,包含了很多常用的功能,并且这些内置库可以直接使用,而其中的内置库:iostream,就提供了输入和输出的功能,允许开发者从键盘读取输入并在屏幕上输出结果。3.在iostream库中,我们有两个对象可以使用,分别是cin和cout。......
  • 侯捷C++上期笔记
    1.头文件和类、构造函数c++和c最大的不同在于C++会把数据以及处理数据的函数放到一个对象objects(class)里,不同类之间不可见,类似C中结构体struct防止头文件重复声明ifndefcomplex//当之前没有声明过这个头文件时,才进行后续的声明definecomplex(2)补充定义(1)类定义(3)类功能解释......
  • C++身份证二要素实名认证api、实名认证接口
    在数字化时代背景下,个人信息安全成为了社会关注的焦点。为进一步加强网络空间的安全管理,提升服务效率,身份证实名认证接口的出现为各行业提供了更为安全、高效的身份验证解决方案。随着互联网+政务服务、金融科技、电子商务等领域的快速发展,实名认证需求日益增长。翔云身......
  • 在数据结构上,后端要求前端在一个对象中添加一个类型字段,并且对该对象的某些属性中都加
    这个需求的合理性取决于具体的应用场景和目的。让我们分析一下:合理性的一面:简化逻辑处理:如果这个类型字段是为了在后端快速区分或过滤不同类型的对象属性,那么在前端就做好标记,可以简化后端处理逻辑,减少在后端进行类型判断的需要。一致性保证:在前端加入类型字段并确保它与对象......