诶呀呀

Ch3 函数

1、内联函数:

inline 关键字只表示一个要求,不代表编译器一定将其作内联,同时,没有此关键字也可能被编译为内联, 内联函数要求比较简单。

2、带默认形参值的函数:

函数的定义也属于声明,故若一函数在定义之前有原型声明,默认形参值需在原型声明中给出,定义中不能出现。

有默认值的形参必须在形参列表最后。

3、函数重载: 

形参必须不同。 防止二义性,如 int fun(int a,int b=1); 与 int fun(int a); 。

4、引用传递


Ch4 类与对象

1、面向对象程序设计的基本特点: 抽象、封装、继承、 多态。

2、构造函数和析构函数: 

(1)构造函数:   

构造函数的函数名与类名相同,而且没有返回值,通常被声明为公有函数。

调用时无需提供参数的称为默认构造函数。类中没有写,则会生成隐含的默认构造函数。

构造函数作为类的成员函数,可以直接访问类的所有数据成员,可以是内联函数,可以带有参数表,可以带默认的形参值,也可以重载。

(2)复制构造函数 :  

 复制构造函数的调用:

 用一个对象初始化另一对象; 函数的形参是类的对象,调用函数进行形参和实参结合时 ; 返回值为类的对象,返回调用值时;

当类的数据成员中有指针类型时,默认复制构造函数为浅复制。

(3)析构函数:   

析构函数在对象生存期即将结束时自动调用。 析构函数无返回值,不接受任何参数。 系统会自动生成隐含析构函数。

3、类的组合:

 当创建类的对象时,各个内嵌对象成员首先被自动创建。

构造函数调用顺序:

(1)调用内嵌对象构造函数,调用顺序按照内嵌对象在组合类的声明中出现的次序。
(2)执行本类的构造函数

析构函数调用顺序刚好相反。

eg.

1. 若 PAT 是一个类,则程序运行时,语句“PAT (*ad)[3];”调用 PAT 的构造函数的次数是 0


Ch5数据的共享与保护

1、类的静态成员

(1)静态数据成员:

可以通过类名进行访问,“类名::标识符”。 初始化在类外进行。

(2)静态函数成员:

可以通过类名或对象名调用。可直接访问该类的静态数据和函数成员 访问非静态成员必须通过对象名。

2、类的友元

(1)友元函数:

在函数体中可以通过对象名访问类的私有和保护成员。

(2)友元类:

3、共享数据的保护

(1)常对象:

常对象必须进行初始化,而且不能被更新。通过常对象只能调用常成员函数。

(2)常成员函数:

常成员函数目的对象都被视为常对象。

(3)常数据成员:

构造函数只能通过初始化列表对该数据成员进行初始化。

静态常数据成员在类外说明和初始化。

(const int a;  static const int b;  };    const int A::b=10;      A::A( int i):a(i){ }  )

**类的静态常量如果具有整数类型或枚举类型,可直接在类定义中指定常量值。如static const int b=10;

(4)常引用:

常引用可以绑定到常对象。绑定对象都被视为常对象。

传递常引用耗时短。

eg.

1. 友元的作用是 D
A.提高程序的运用效率
B.加强类的封装性
C.实现数据的隐藏性
D.增加成员函数的种类

2. 下列说明中 const char* ptr,ptr应该是

 A. 指向字符常量的指针   B. 指向字符的常量指针   

C. 指向字符串常量的指针 char *p="hello";   D. 指向字符串的常量指针 const char *p="hello";


Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读。

char  * const cp; ( * 读成 pointer to ) 
cp is a const pointer to char --->cp是一个指向字符char的固定指针
const char * ptr; 
ptr is a pointer to const char; --->ptr是一个指向固定字符char的指针

3.设文件 f.cpp 中的一个函数要访问在另一个文件中定义的 int 型变量 x,则在 f.cpp 中 x 应
定义为______________。


位操作:

http://blog.csdn.net/morewindows/article/details/7354571




Ch6数组、指针与字符串

1、对象数组

当各元素对象的初值要求为不同的值时,需要定义带形参(无默认值的)构造函数。

2、指针

*(p-n)=p[-n]

空指针:int *p; p=0;  或 int*p=NULL;

void f(int p[])等价void f(int p[4])等价void f(int *p)

指针数组:如 int *p[3]

(1)指针型函数:返回值为指针,如 int *f(int a)

(2)指向函数的指针:如 void (*fun)(double)

(3)对象指针:如 Point *p; Point p1; p=&p1;

指向数据成员的指针  如:int Point::*ptr1=&Point::pA

指向函数成员的指针  如:int (Point::*ptr2)(int a,int b)=&Point::fun

访问数据成员  如:Point.*ptr1  或 p->*ptr1

调用成员函数  如:(Point.*ptr2)(int a,int b)  或 (p->*ptr2)(int a,int b)

指向类的静态成员  如: int *ptr=&Point:::count      void (*fun)()=Point::show()

this指针

3、动态内存分配

int *poi=new int(2) 动态分配了用于存放int类型数据的内存空间,将2存入该空间并将首地址赋给poi,

()用0初始化

一个new一个delete

Point *ptr=new Point  delete ptr    Point (*ptr)[3]=new Point[2] [3] delete[] ptr

深复制

vector创建数组对象

迭代器

4、string类

getline(cin,s1,',')以,为分隔符读入一行


eg.

1. 假设整型数 i 的地址为 0x1234567,指针 ip 地址为 0x2185004,则执行以下语句后,k的值为 100
int i=100;    int *ip=&i;    int k=*ip;

Ch7继承与派生

默认私有继承

派生类继承基类中除构造和析构函数以外的所有成员。

保护继承中,基类的公有成员和私有成员都以保护成员的身份出现在派生类中,而基类的私有成员不可访问。派生类的其他成员可以直接访问从基类继承来的公有和保护成员,但是类外部通过派生类的对象无法访问它们,无论派生类的成员还是派生类的对象,都无法访问基类的私有成员

派生类名::派生类名(参数总表):基类名1(参数表1)....基类名n(参数名n),内嵌子对象1(参数表1)....内嵌子对象n(参数表n)

构造函数的初始化顺序并不以上面的顺序进行,而是根据声明的顺序初始化

类型兼容规则

using Base1::fun();

虚基类

直接或间接继承虚基类的所有派生类,都必须在构造函数的成员初始化列表中列出对虚基类的初始化。


3.       对于虚函数的调用(D) A、 一定使用动态联编 B、 一定使用静态联编 C、 必须使用动态联编 D、 不一定使用动态联编   

解析:虚函数只是实现动态联编的必要条件之一,只有在同时满足下面条件时,对虚函数的调用才是动态联编:
(1) 类之间为基类和派生类关系 (2)要有虚函数 
(3) 调用虚函数操作的是对象的指针或者对象引用,或者是由成员函数调用虚函数。 

如果不能同时满足以上条件,对虚函数的调用将采取静态联编。 


Ch8多态性

1、运算符重载

类属关系运算符“.“、成员指针运算符”.*“、作用域分辨符”::“和三目运算符”?:“不可重载。

运算符可重载为类的非静态成员函数和重载为非成员函数。

2、虚函数










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值