首页 > 其他分享 >构造函数

构造函数

时间:2023-08-27 23:00:19浏览次数:38  
标签:函数 编译器 重载 inline 默认值 构造函数

一、inline(内联)函数

   什么情况下产生inline:函数在class的本体里面定义,就形成一种inline。在外头定义就不是inline。但是,是不是最后真的变成inline function由编译器决定。

  inline有什么好处:快。有特点而没有缺点。尽量都写成inline那最好。

  2-2不在本体内定义,可以在前面加上inline。

二、access level(访问级别)

  数据部分为private;函数看情况,被外界调用用public。

三、constructor(ctor,构造函数)

 

初值列是C++特殊写法,是一种很好的写法。

默认值的意思是,如果在创建时没有指明,就用默认值。

 构造函数一定要跟类的名称相同。没有返回值类型。

//这部分代码等价于
//可以这样写,但是效率差一些
complex (double r = 0, double i = 0) { re = r; im = i; }

三种创建对象的方式:

 不带指针的class多半不用写析构函数。

四、ctor(构造函数)可以有很多个——overloading(重载)

 例如,real()这个函数,同名但是参数不同,编译后给编译器看到的名称是不一样的,所以可以重载。

重载常常发生在构造函数上,但是由于目前拥有的这个构造函数已经有初始值了,但是还是可以重载写出其他的构造函数。

目前构造函数的1跟2两者是冲突的,因为第一个函数有默认参数,当创建c1的时候,没有参数,那么2(没有参数,符合c1要求)是候选人,但是complex类里有1,虽然有参数,但是有默认值,1也能被调用。编译器不知道该调用1还是2,不可以这样写。

标签:函数,编译器,重载,inline,默认值,构造函数
From: https://www.cnblogs.com/buyifan/p/17661056.html

相关文章

  • C++构造函数、析构函数、初始化列表
    构造函数构造函数就是与类名同名的成员函数,当实例化对象时它会自动执行,当构造函数执行结束后,对象才完成实例化任务:一般负责对类对象进行初始化、资源分配class类名{int*p;public:类名(参数){p=newint;}}......
  • 隐式构造函数和explicit
    当构造函数只有一个构造函数时,可以直接将参数赋值给类对象classEntity{public: Stringm_Name; intm_Age;public: explicitEntity(constString&name):m_Name(name),m_Age(0){} Entity(intage):m_Name("Unkown"),m_Age(age){}};Entitye1=22;Entitye2=......
  • C++ 构造函数与析构函数
    构造函数和析构函数构造函数构造函数会在实例化对象的时候执行,可以在实例化时传入参数。构造函数没有返回值。不需要声明返回值。构造函数的函数名与类名保持一致。//classname:PlayerPlayer(intxa=0,intya=0){//构造函数,传入初始坐标进行初始化......
  • 1.1 C++ STL 字符串构造函数
    String字符串操作容器是C++标准中实现的重要容器,其主要用于对字符串的高效处理,它和C风格中的string.h并不是同一个库,两个库有极大的差距,C库中的string.h主要面向过程提供一些处理函数,而C++库中的string则是基于类实现的更高效的一种字符串处理方法集,类中提供了非常方便的成......
  • 1.1 C++ STL 字符串构造函数
    String字符串操作容器是C++标准中实现的重要容器,其主要用于对字符串的高效处理,它和C风格中的string.h并不是同一个库,两个库有极大的差距,C库中的string.h主要面向过程提供一些处理函数,而C++库中的string则是基于类实现的更高效的一种字符串处理方法集,类中提供了非常方便的成......
  • 【C++ Primer读书笔记】7.1.4 构造函数
    构造函数构造函数的任务是初始化类对象的数据成员被调用的时机,无论何时只要类的对象被创建,就会调用构造函数构造函数的特殊性1.构造函数与类名称相同2.构造函数没有返回值3.构造函数不能被声明为const,因为当我们创建一个const对象时,直到构造函数完成初始化过程,对象才......
  • golang 构造函数的应用
    在Go语言中,没有类似于传统面向对象编程语言中的构造函数的概念。然而,你可以使用初始化函数来达到类似的效果。在Go中,结构体(struct)是一种用于封装一组相关字段的数据类型。你可以为结构体定义一个初始化函数,该函数在创建结构体实例时自动调用,用于设置字段的初始值。这个初始化函数......
  • [Unity]为什么不要在Unity中使用构造函数
    MonoBehaviour派生出来的类会作为Unity3D中的Component挂载在GameObject上,而GameObject会在编辑器的多个地方被显示,如场景编辑器内、Prefab选中时等,这些时候都需要调用它们的构造函数来初始化成员变量的默认值,以便在编辑器中显示它们,也就是说,构造函数的调用次数和调用时机是“完全......
  • C++ 构造函数初始化:提高代码可读性和执行效率
    在C++中,构造函数是用来初始化对象数据成员的。一个对象在创建的时候,构造函数会被自动调用,以便为该对象的数据成员赋初值。传统的初始化方式是在构造函数内部对数据成员逐一进行初始化,这种方式虽然可行,但是代码复杂度高且效率低下。本文将介绍如何使用构造函数初始化列表来提高......
  • 前端原型和原型链构造函数的使用
     目录前言导语代码部分 总结代码部分 总结前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语......