20140407 泛型编程和模板 函数指针 类的静态函数 静态成员变量 静态联编 动态联编
2014-04-07 20:50
309 查看
1、泛型与模板的区别
泛型是个更广泛的概念,java,C#等其他语言也“实现”了泛型概念。 对于C++语言来说,使用了模板实现泛型。想想“C++模板”,“泛型”这种技术,这种概念,目的是更好地进行代码复用,更好地表达类型,类型表达的安全。 希望对您有些帮助。
2、函数的指针
编译时分配的函数入口地址,函数名就是入口地址;最常用的用途就是把函数指针作为参数传给其它函数;
#include<stdio.h> int jug(int x, int y) { if(x>=0) { return x; } else if(y==0) { return x; } else return x/y; } int sub(int x,int y) { return(x+y); } int minus(int x,int y) { return (x-y); } void test(int (*p)(int,int),int a,int b) { int Int1; Int1=(*p)(a,b); printf("a=%d,b=%d\n",a,b,Int1); } int main() { int a=1,b=2,c=3,d=4,e=-5; test(sub,a,b); test(minus,c,d); test(jug,e,b); return 0; }
3、静态模板类,类的静态函数
类的静态函数不属于类对象,只属于类本身。静态模板类
#include<iostream> using namespace std; template<class T> //建立一个静态类模板 class Operate { public: static T Add(T a,T b) {return a+b;} static T Mul(T a,T b) {return a*b;} static T Judge(T a, T b=1) { if(a>=0) {return a;} else {return a/b;} } }; int main() { int A,B,C,D,E,x,y,z; A=1,B=2,C=3,D=4,E=5; x=Operate<int>::Add(A,B); y=Operate<int>::Mul(C,D); z=Operate<int>::Judge(E,B); cout<<x<<'\n'<<y<<'\n'<<z<<endl; return 0; }
4、成员变量(面P107)
对象之间可以共享的类成员变量:静态类成员变量(必须赋初值)私有静态类成员变量需要通过公有静态成员函数访问
构造函数的初始化列表的初始化变量顺序是根据成员变量的声明顺序来执行的
const常量必须设置为static或者在构造函数中初始化
5、静态联编(编译时就确定)和动态联编(虚函数是基础)
http://bdxnote.blog.163.com/blog/static/8444235200911311348529//article/4988332.html
p110
虚函数数是非静态的成员函数
相关文章推荐
- 笔记八:静态变量、静态成员函数、函数指针、静态函数指针
- 模板实参推断与函数指针
- C++语法基础--模板实参推断,模板类型形参的实参的受限转换,模板实参推断与函数指针
- 成员函数指针和模板混用,折腾。。
- 泛型编程与函数模板
- 模板实参推断与函数指针
- 函数指针,函数模板,std::bind
- C++使用模板、函数指针、接口和lambda表达式这四种方法做回调函数的区别比较
- Effective c++--智能指针 & 函数模板
- this指针指向当前调用对象,只是用于类的非静态成员函数。静态函数和全局函数 无当前对象,无this指针。
- 【c++】泛型编程之函数模板
- 模板和泛型编程的相关知识(函数模板)
- C/C++ 指针数组与数组指针、函数指针与指针函数、模板函数与函数模板、类模板与模板类区别
- c++模板之函数指针到函数对象:
- C++ Primer 学习笔记_86_模板与泛型编程 -满载与函数模板
- c++中静态成员变量 静态成员函数 全局变量与静态函数的关系 字符串中括号的匹配编程 (笔试经历)
- C++技术点积累(5)——泛型编程(函数模板、类模板)
- 虚函数及静态联编与动态联编---学习笔记
- 静态联编,动态联编,类指针之间的关系,虚函数与多态性,纯虚函数,虚析构函数
- 模板类、类模板、函数模板、模板函数、函数指针、指针函数、数组指针、指针数组