c++的一些知识

来源:互联网 发布:人工智能利大于弊辩论 编辑:程序博客网 时间:2024/06/05 18:39

static
在c语言中
1 静态变量(全局和局部)
2 局部函数
3 声明静态全局变量

#include <stdio.h>

static int a;

static void abc()
{
 printf("天下\n");
}

static c;

int main()
{

 
 static int b;
 printf("c=%d\n",c);
 
 return 0;
}


static int c = 100;

static 全局变量在多线程中会引入函数重入性问题。
static 局部变量  count 方面用
static 局部函数 防止重名 在内核中用的比较多


静态成员与非静态成员的区别:
 1 声明不同
 2 非静态成员属于对象不属于类,用于描述具体的对象。
 3 静态成员属于类而不属于对象,用于描述一类事物的共同特征。
int a(2) 定义一个变量a 并初始化为2;

所有静态成员都可以在外部初始化
加了const的数据成员可以在内部初始化
 在外部初始化为 const  int m_d =20;
 
float 不确定的数,约数,无限地接近某个数。
指针与零的比较,float,bool

寄存器变量,全局变量,局部变量,动态变量
this指针指向当前对象。
 "this " is unavaliable for static member functions

存储  静态数据成员在数据区
 静态成员函数在代码区

 


非静态数据成员不能在静态函数中直接使用,通过对象的引用间接使用


1)友元函数
  a 普通的全局函数作为一个友元函数。
  b 一个类的成员作为;另一个类的友元函数。
2) 一个类作为另一个类的友元。

3) 虚函数表
 

虚函数表?
:c/c++中的使用

面向对象的编程原则:
 1) 模块化编程(高内聚,低耦合)
 2) 面向接口的编程而非面向实现的编程
 3)(strategy)  变化的部分用组合,不变的部分用继承

strategy(策略模式)

带有组合类的构造函数执行顺序,按照组合被声明的顺序执行(从上而下,从左至右)

car::car():a1(20),b1(30),engine_a(1,2,"how are you ")
在使用的构造函数的一个提醒


继承方式的区别
public
private
protected

 

单继承:只有一个父类
先调用继承的构造函数,再调用组合构造函数,最后调用派生类构造函数。

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

原创粉丝点击