构造函数

第23课 神秘的临时变量

不羁的心 提交于 2020-02-19 20:57:18
本文内容取自于对狄泰学院 唐佐林老师 C++深度解析 课程的学习总结 有趣的问题 下面的程序输出什么? 为什么? 运行结果 从实验结果可以看出,mi的值为一个随机数 发生了什么 程序意图: 在 Test() 中以 0 作为 参数调用 Test(int i) 将成员变量 mi 的初始值设置为 0 运行结果: 成员变量 mi 的值为随机值 思考 构造函数 是一个特殊的函数 是否可以 直接调用 ? 是否可以在 构造函数中调用构造函数? 直接调用构造函数的行为是什么? 答案 直接调用构造函数将产生一个 临时对象 临时对象的 生命周期只有一条语句的时间 临时对象的 作用域只在一条语句中 临时对象是C++中 值得警惕 的灰色地 编程实验 解决方案 定义一个私有成员函数init()来初始化私有变量 mi # include <stdio.h> class Test { int mi ; void init ( int i ) { mi = i ; } public : Test ( int i ) { init ( i ) ; } Test ( ) { init ( 0 ) ; } void print ( ) { printf ( "mi = %d\n" , mi ) ; } } ; int main ( ) { Test t ; t . print ( ) ; return 0 ; }

理解Javascript的原型和原型链

左心房为你撑大大i 提交于 2020-02-19 20:55:12
前言 本文2088字,阅读大约需要13分钟。 总括: 结合实例阐述了原型和原型链的概念并总结了几种创建对象的方法,扩展原型链的方法。 参考文章: The Secret Life of Objects , 继承与原型链 公众号:「前端进阶学习」,回复「666」,获取一揽子前端技术书籍 禄无常家,福无家门。 正文 原型 Javascript中有一句话,叫一切皆是对象,当然这句话也不严谨,比如 null 和 undefined 就不是对象,除了这俩完全可以说Javascript一切皆是对象。而Javascript对象都有一个叫做 原型 的公共属性,属性名是**__proto__ 。这个 原型 属性是对另一个对象的引用,通过这个 原型**属性我们就可以访问另一个对象所有的属性和方法。比如: let numArray = [1, 2, -8, 3, -4, 7]; Array 对象就有一个原型属性指向 Array.prototype ,变量 numArray 继承了 Array.prototype 对象所有的属性和方法。 这就是为什么可以直接调用像 sort() 这种方法: console.log(numArray.sort()); // -> [-4, -8, 1, 2, 3, 7] 也就是说: numArray.__proto__ === Array.prototype // true

4 python 类的专有方法介绍

寵の児 提交于 2020-02-19 17:03:04
1、 __init__ : 构造函数,在生成对象时调用 该方法是在对象产生之后才会执行,只用来为对象进行初始化操作,可以有任意代码,但不一定有返回值。 所谓初始化构造函数就是在构造对象的同时被对象自动调用,完成对事物的初始化,一个类只要生成一个类对象,它一定会调用初始化构造函数. 特点: 1>一个类中只能有一个初始化构造函数 2>不能有返回值 3>可以用它来为每个实例定制自己的特征 class Chinese: country = 'china' def __init__(self,name,sex,age): self.name = name self.sex = sex self.age = age def tell_info(self): info = f""" 国籍:{self.country} 姓名:{self.name} 性别:{self.sex} 年龄:{self.age} """ print(info) s1 = Chinese('alex','man','22') s2 = Chinese('alex2','woman','23') s3 = Chinese('alex3','man','21') 2、_mro_解析方法调用的顺序 继承的实现原理(多继承查找) >>> F.mro() #等同于F.__mro__ (<class '__main__.C'>,

web前端学习之JavaScript

拜拜、爱过 提交于 2020-02-19 14:47:28
JavaScript 是世界上最流行的编程语言。这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 JavaScript 是脚本语言 JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。 通过这段时间对js的学习,越来越发现js的强大与重要性。 1、 语言特性、功能、简介: JavaScript 是世界上最流行的编程语言。 这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。 插入HTML页面中后由所有现代浏览器进行执行。 功能是在HTML页面中为所欲为。 2、 变量、数据类型: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> var a=5; var b="hi,javascript"; var c=true; var d=["one","two","three"]; /** * 注意,script里面的type写不写都不要紧,因为H5中已经将JS认定为默认的脚本语言 * var 是定义变量的前缀

C#设计模式--单例模式

可紊 提交于 2020-02-19 14:03:16
单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中, 任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。 下面来看单例模式的结构图: 从上面的类图中可以看出单例模式的特点: 在单例类中有一个构造函数 Singleton , 但是这个构造函数却是私有的 公开了一个 GetInstance()方法 通过上面的类图不难看出单例模式的特点,从而也可以给出 单例模式的定义: 单例模式保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。 1.最基本的单例: namespace Singleton { public class Singleton { //定义一个私有的静态全局变量来保存该类的唯一实例 private static Singleton singleton; /// <summary> /// 构造函数必须是私有的 /// 这样在外部便无法使用 new 来创建该类的实例 /// </summary> private Singleton() { } /// <summary> /// 定义一个全局访问点 /// 设置为静态方法 /// 则在类的外部便无需实例化就可以调用该方法 /// </summary> /// <returns></returns> public static Singleton GetInstance() { /

C++笔记(from B站玄马科技)

你。 提交于 2020-02-19 04:32:29
地址: https://space.bilibili.com/477729104 bool类型 C++中的新类型(bool:0为假,非0为真) 占用的字节数(bool:1,BOOL:4) bool类型正确的使用 const常量 const用于修饰变量,将变量变为常量(常量一旦定义,就不可以修改) 编译器在程序的编译时期做的检查 默认参数 函数允许提供默认参 默认参可以写在声明或者定义处,但只能出现在一个地方,一般写在声明处 当一个参数有默认参时,该参数的右边必须都出现默认参 使用宏定义 #define TESTFoo(m,n,k) TestFoo(m,n,k,1,2,3) int TestFoo(int n1, int n2, int n3, int n4, int n5, int n6) { return 0; } 此时,TestFoo内n4, n5, n6的值将会被宏定义中的1,2,3所代替。 也可以采用以下方式 #define TESTFoo(m,n,k) TestFoo(m,n,k,1,2,3) int TestFoo(int n1, int n2, int n3, int n4 = 4, int n5 = 5, int n6 = 6) { return 0; } 此时,n4, n5, n6的值将由函数内部的形参决定,即值为4,5,6 当采用以下方式时 #define

面向对象三大特征之继承

我是研究僧i 提交于 2020-02-18 21:37:27
继承 ; A extends B; 就代表A继承了B; B类作为一个父类, A类作为一个子类; ​定义: 子类继承父类的属性和方法;子类可拥有自己独有的属性和方法; package com.lv.ext; //生物 public class Organisa { String name; public void huozhe(){ } } package com.lv.ext; //动物 //Animal extends Organisa 动物类继承生物类 //构造函数不能继承 public class Animal extends Organisa { //私有的属性 private int number; //私有的方法 private void test(){ } public Animal(){ System.out.println("这个是Animal的构造方法"); } public Animal(String name){ this.name=name; System.out.println("这个是Animal带参数的构造函数"); } public void eat(){ } public void sleep(){ } } package com.lv.ext; //蛇 public class Snake extends Animal { /

JS中的继承方式总结

时光总嘲笑我的痴心妄想 提交于 2020-02-18 07:53:20
1. 原型链继承(又称类继承) Child.prototype = new Parent(); 1 function Parent (name, age) { 2 this.name = name; 3 this.age = age; 4 } 5 Parent.prototype.say = function(){ 6 console.log('hello, my name is ' + this.name); 7 }; 8 function Child() { 9 } 10 Child.prototype = new Parent('pursue'); 11 var child1 = new Child(); 12 child1.say(); //hello, my name is pursue 13 var child2 = new Child(); 14 console.log(child1.say === child2.say);//true 15 console.log(child1.name === child2.name);//true 通过子类的原型prototype对父类实例化实现。利用将父类实例赋值给子类原型,达到继承的目的:子类原型可访问父类原型上的属性和方法 以及 父类构造函数中复制的属性和方法

STL详细介绍(更新中~~~)

雨燕双飞 提交于 2020-02-17 23:16:27
目录 string string的常见构造函数 string与char *(或const char*)之间的转换 string 转化为const char* const char* 转化为string string 转化为 char* char* 转化为string find函数 string 帮助链接: https://www.jianshu.com/p/497843e403b4 string的常见构造函数 //通过const char * 初始化 string s1 = "aaaa"; //构造函数初始化 string s2("bbbbb"); //通过拷贝构造函数来初始化对象s3 string s3 = s2; //用10个'a'字符来初始化字符串 string s4(10, 'a'); string与char *(或const char*)之间的转换 string 转化为const char* string str("aaaaaaa"); const char *s = str.c_str(); /*str.c_str()返回的应该是const char* 类型*/ const char* 转化为string const char *p1 = "123345"; string str1 = p1; /*直接拷贝*/ //或者这样 string str2(p1);