fun函数

c++ 类的继承与派生

北城以北 提交于 2019-12-18 20:07:07
一、基本概念 1、类的继承,是新的类从已有类那里得到已有的特性。或从已有类产生新类的过程就是类的派生。原有的类称为基类或父类,产生的新类称为派生类或子类。 2、派生类的声明: class 派生类名:继承方式 基类名1, 继承方式 基类名2,...,继承方式 基类名n { 派生类成员声明; }; 3、一个派生类可以同时有多个基类,这种情况称为多重继承,派生类只有一个基类,称为单继承。直接派生,间接派生。 4、继承方式规定了如何访问基类继承的成员。继承方式有public, private, protected。如果不显示给出继承方式,默认为private继承。继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限。 5、派生类继承基类中除构造和析构函数以外的所有成员。 6、派生类生成: 吸收基类成员(除构造析构函数以外的所有成员); 改造基类成员(根据继承方式调整基类成员的访问,函数在子类中的覆盖,以及虚函数在子类中的覆盖); 添加新的成员; 7、公有继承 当类的继承方式为公有继承时,基类的公有和保护成员的访问属性在派生类中不变,而基类的私有成员不可访问。即基类的公有成员和保护成员被继承到派生类中仍作为派生类的公有成员和保护成员。派生类的其他成员可以直接访问它们。无论派生类的成员还是派生类的对象都无法访问基类的私有成员。 8、私有继承 当类的继承方式为私有继承时

【转】函数指针和指针函数用法和区别

半世苍凉 提交于 2019-12-18 10:42:37
前言 函数指针和指针函数,在学习 C 语言的时候遇到这两个东西简直头疼,当然还有更头疼的,比如什么函数指针函数、指针函数指针、数组指针、指针数组、函数指针数组等等,描述越长其定义就越复杂,当然理解起来就越难,特别是刚开始学习这门语言的童鞋,估计碰到这些东西就已经要崩溃了,然后好不容易死记硬背下来应付考试或者面试,然后过了几天发现,又是根本不会用,也不知道该在哪些地方用,这就尴尬了。 今天这里只讲两个相对简单的,其实上面说那些太复杂的东西也真的很少用,即便是用了理解起来很麻烦,所以莫不如先深刻理解这两个比较容易的,并且项目中比较常用到。 正文 先来看看两者的定义以及说明。 指针函数 定义 指针函数,简单的来说,就是一个返回指针的函数,其本质是一个函数,而该函数的返回值是一个指针。 声明格式为:* 类型标识符 函数名(参数表) 这似乎并不难理解,再进一步描述一下。 看看下面这个函数声明: int fun(int x,int y); 这种函数应该都很熟悉,其实就是一个函数,然后返回值是一个 int 类型,是一个数值。 接着看下面这个函数声明: int *fun(int x,int y); 这和上面那个函数唯一的区别就是在函数名前面多了一个*号,而这个函数就是一个指针函数。其返回值是一个 int 类型的指针,是一个地址。 这样描述应该很容易理解了,所谓的指针函数也没什么特别的

c++11之function和bind

假装没事ソ 提交于 2019-12-17 08:47:27
前言 可调用对象:对于一个对象或表达式,如果可以对其使用调用运算符,则称该对象或表达式为可调用对象。 C++语言中有几种可调用对象:函数、函数指针、lambda表达式、bind创建的对象以及重载了函数调用运算符的类。 和其他对象一样,可调用对象也有类型。例如,每个lambda有它自己唯一的(未命名)类类型;函数及函数指针的类型则由其返回值类型和实参类型决定。 function function是一个template,定义于头文件 functional 中。 通过function<int(int, int)> 声明一个function类型,它是“接受两个int参数、返回一个int类型”的可调用对象。 这里可调用对象可以理解为函数指针(指针指向一个函数,该函数有两个int类型参数,返回int类型,即:int (*p)(int, int) )。 function 的例子: 保存普通函数 void printA(int a) { cout << a << endl; } std::function<void(int a)> func; func = printA; func(2); //2 保存lamdba表达式 std::function<void()> func_1 = [](){cout << "hello world" << endl;}; func_1(); //hello

python中的装饰器

北慕城南 提交于 2019-12-17 03:24:56
把一个函数当作参数传递给另一个函数,返回一个替代版的函数,本质上就是一个返回函数的函数,在不改变原函数的基础上 给函数增加功能 语法塘 #装饰器可以被多个函数调用 def fun ( z ) : def inner ( ) : print ( '@@@@@@@' ) z ( ) return inner ( ) @fun #语法塘 def outher ( ) : print ( 'hello' ) @fun def lala ( ) : print ( 'haha' ) #打印结果 @@@@@@@ hello @@@@@@@ haha **装饰器实现一个函数计时器 1.被装饰的函数如果有 返回值的时候 怎么办? 2.如何保留被装饰函数的函数名字和帮助文档信息? ** import functools import random import string import time li = [ random.choice ( string.ascii_letters ) for i in range ( 100 ) ] print ( time.time ( )) def timeit ( fun ) : @functools.wraps ( fun ) def wrapper ( *args,**kwargs ) : #接收可变参数 和 关键字参数 ""

实验四

与世无争的帅哥 提交于 2019-12-16 15:11:06
#include <math.h> #include <stdio.h> #include <stdlib.h> // 函数声明 void solve(double a, double b, double c); // 主函数 int main() { double a, b, c; printf("Enter a, b, c: "); while(scanf("%lf%lf%lf", &a, &b, &c)) { solve(a, b, c); // 函数调用 printf("Enter a, b, c: "); } system("pause"); return 0; } // 函数定义 // 功能:求解一元二次方程,打印输出结果 // 形式参数:a,b,c为一元二次方程系数 void solve(double a, double b, double c) { double x1, x2; double delta, real, imag; if(a == 0) printf("not quadratic equation.\n"); else { delta = b*b - 4*a*c; if(delta >= 0) { x1 = (-b + sqrt(delta)) / (2*a); x2 = (-b - sqrt(delta)) / (2*a); printf("x1 =

JS中的this

删除回忆录丶 提交于 2019-12-10 23:22:11
㈠This是什么? ⑴ 解析器(浏览器 ) 在调用函数时,每次都会向函数内部传递进一个 隐含的参数 这个隐含的参数就是 this ,this指向的是一个对象 这个对象我们称为函数执行的 上下文对象 ⑵根据函数的调用方式的不同,this会指向不同的对象 1.以 函数的形式 调用时,this永远都是 window 2.以 方法的形式 调用时,this就是 调用方法的那个对象 ⑶具体示例1:打印this function fun(){ console.log(this); } fun(); //创建一个对象 var obj = { name:"孙悟空", sayName:fun }; var obj2 = { name:"沙和尚", sayName:fun }; //console.log(obj.sayName == fun); ①obj.sayName(); ②obj2.sayName(); 效果如下: 以obj调用,结果: 以obj2调用,结果: ⑷具体示例2:打印this.name function fun(){ console.log(this.name); } fun(); //创建一个对象 var obj = { name:"孙悟空", sayName:fun }; var obj2 = { name:"沙和尚", sayName:fun }; //console.log

全面讲解:委托、事件

穿精又带淫゛_ 提交于 2019-12-10 09:02:57
每个编程者在项目中必定绕不开的话题:委托和事件。对于初学者来说,总会感觉有些难以理解,或者说无法自己随意运用。本文对委托、事件做一个详细的讲解,即是基础知识的自我温故,同时亦是记录。篇幅有些长,如果认真阅读,相信你会有所收获。 《Introducing Visual C# 2010》(Adam Freeman著,Apress出版)一书的第10章中有这样的介绍: Delegates are special types thatencapsulate a method, similar to function pointers found in other programminglanguages. Delegates have a number of uses in C#, but you are most likely toencounter a special type of delegate—the event. Events make notifyinginterested parties simple and flexible, and I’ll explain the convention fortheir use later in the chapter. 委托是封装方法的特殊类型,它类似于其它编程语言中的函数指针。委托在C#中有大量运用

立即执行函数的表达式

南楼画角 提交于 2019-12-09 23:04:39
1 <script> 2 3 // 立即执行的函数表达式(Immediately-invoked function expression,IIFE)也被称为自执行函数。 4 5 // 最常见的写法一: 6 // (function foo () { 7 // console.log('foo') 8 // })() 9 10 // 最常见的写法二: 11 // (function bar () { 12 // console.log('bar') 13 // }()) 14 15 // 以下两种写法不常用: 16 // +function fun () { 17 // console.log('fun') 18 // }() 19 20 -function xxx () { 21 console.log('xxx') 22 }() 23 24 </script> 来源: https://www.cnblogs.com/wszzj/p/12013896.html

学习kotlin系列之十(集合和表达式)

﹥>﹥吖頭↗ 提交于 2019-12-09 17:24:27
1、集合 1)list集合 创建方式: (1)listOf<>() (2)mutableListOf<>() fun main ( args : Array < String > ) { //list集合 //第一种创建方式 val list = listOf < String > ( "林青霞" , "梁朝伟" ) list . filter { if ( it . equals ( "林青霞" ) ) { println ( it ) } return } val list1 = mutableListOf < String > ( ) list1 . add ( "林青霞" ) list1 . forEach { println ( it ) } val list3 = arrayListOf < String > ( ) } 2)map集合 fun main ( args : Array < String > ) { //第一种不能增加 val map = mapOf < String , String > ( "中国" to "China" ) map . forEach { t , u -> //key和value println ( t ) } //遍历所有的key或者value val keySet = map . keys //第二种 val maps =

学习kotlin系列之八(开发实用1)

佐手、 提交于 2019-12-09 16:52:10
1、中缀表达式 中缀表达式:让代码更加简洁易懂 说明:使用的条件 DSL语言 1)必须是成员函数或扩展函数; 2)必须只有一个参数; 3)参数不能是可变参数或者默认参数。 fun main ( args : Array < String > ) { val 张三 = Person ( ) 张三 sayHelloTo "李四" //自定义操作符 } class Person { infix fun sayHelloTo ( name : String ) { //使用关键字infix println ( "你好, $name " ) } } 2、委托 1)类委托 类委托:就是经验总结出来的 /** *说明:大头儿子和小头爸爸的例子 */ fun main ( args : Array < String > ) { val smallHeadFather = SmallHeadFather ( ) smallHeadFather . wash ( ) } //洗碗的能力 interface WashPower { //洗碗行为 fun wash ( ) } class BigHeadSon : WashPower { override fun wash ( ) { println ( "小头儿子洗的碗" ) } } class SmallHeadFather : WashPower