c++构造函数初始化
2021/11/7 11:41:38
本文主要是介绍c++构造函数初始化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#include <iostream> #include <string> using namespace std;class Person { public: int id; string name;
public: Person() { this->id = 200; cout << "wu can gou zao han shu" << endl; }
Person(int id, string name) { this->id = id; this->name = name; cout << "you can gou zao han shu" << endl; }
Person(int id); };
Person::Person(int id) { this->id = id; cout << "id gou zao" << endl; }
/** * @brief * 整形初始化的几种方式 */ void TestIntInit() { int i1 = 100; int i2{100}; int i3(100); int i5 = int{100}; int i6 = int(100); int i4 = {100}; }
/** * @brief * 有参构造函数的几种写法 */ void TestPersonParamInit() { Person pp1(1, "qiumc"); Person pp2{1, "qiumc"}; Person pp3 = Person(1, "qiumc"); Person pp4 = Person{1, "qimmc"}; Person pp5 = {1, "qiumc"}; }
/** * @brief * 无参构造函数的几种写法 */ void TestPersonInit() { // 不能写成Person p1();因为这里无法和函数声明相区分开 Person p1; Person p2{}; Person p3 = Person(); Person p4 = Person{}; Person p5 = {}; }
/** * @brief * 一个参数的构造函数的简写方式 */ void TestPersonSingleParamInit() { // 如果没有类型符合的单参构造函数,这四种写法都会报错 // 下面这些都是发生了隐式转化 // 构造函数被声明为explicit时候,会禁止所有当前自定义类的隐式类型转换,所以如果explicit修饰构造函数后,下面变量的定义都会报错 // explicit ,当有一个构造函数的定义和声明的时候,只能出现在构造函数声明处,不能出现在构造函数的定义处 Person p1 = 100; // id = 100 Person p2 = (200); // id = 200 Person p3 = (1, 2, 3, 4); // id = 4 Person p4 = {1}; //这种形式也是一种类型的隐式转化 cout << p1.id << ":" << p2.id << ":" << p3.id << endl; }
/** * @brief * 拷贝构造函数的几种写法 */ void TestPersonCopy() { Person pp(1, "qiumc"); Person pp1(pp); Person pp2{pp}; Person pp3 = Person(pp); Person pp4 = Person{pp}; Person pp5 = {pp}; } /** * @brief * 注意整型数据初始化,和自定义类型初始化,基本上是可以类比的。 */ int main(int argc, char const* argv[]) { TestPersonSingleParamInit(); }
这篇关于c++构造函数初始化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04el-table 开启定时器下,表格的选中状态会消失是什么原因-icode9专业技术文章分享
- 2024-10-03如何安装和初始化飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03如何安装 App 并连接到飞牛 NAS?-icode9专业技术文章分享
- 2024-10-03如何安装飞牛 TV 并连接到影视服务器?-icode9专业技术文章分享
- 2024-10-03如何在PVE和ESXI上安装飞牛私有云 fnOS?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS安装系统异常情况处理-icode9专业技术文章分享
- 2024-10-03飞牛NAS如何创建存储空间?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS硬盘会自动休眠吗?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何安装飞牛影视和创建媒体库?-icode9专业技术文章分享
- 2024-10-03fnOS国产最强NAS如何为家人朋友开通影视账号?-icode9专业技术文章分享