1. 面向对象的语言有三个主要特征:封装、继承和多态。
多态比较通俗的解释:多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或者表现出不同的行为。
2. 数据类型
| 基本数据类型 | 整型、字符型、浮点型、布尔型 | 数据类型 | | | | 非基本数据类型 | 数组、指针、空类型、结构、联合、枚举、类 |
3. 联合体类型中的数据共用一个地址的起始地址。如
union area
{
char c_data;
shart s_data;
long l_data;
};
其中,这三个数据共用同一个起始地址,这个联合类型的数据类型所占的空间就是sizeof(long)长度。
4.随机函数 。
rand(void)返回伪随机数,seed默认是一样的。
srand(unsigned int seed) 产生随机数,不过这个seed要是不同的数值。
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int result = 0;
result = rand();
cout << result << endl;
result = rand();
cout << result << endl;
srand((unsigned)time(NULL));
result = rand();
cout << result << endl;
result = rand();
cout << result << endl;
return 0;
}
多次运行上面的程序可以看出结果:
第一次:
41
18467
321
781
第二次:
41
18467
530
551
可以看出,要想多次运行程序来使用随机产生的数据的话,需要设置seed值。
5. 类中的成员缺省访问权限是私有的,而结构体是公有的。
6. 拷贝构造函数是一种特殊的构造函数,其形参为本类的对象的引用。调用拷贝构造函数的情况有:(1)将一个对象赋值给另一个对象或者用一个对象来生成另一个对象(2)函数的参数为一个对象,那么也会调用构造函数(3)返回值是类类型
7. 预编译指令
(1)#if
#endif
(2)#if
#else
#endif
(3)#if
#elif
#else
#endif
(4)#ifdef
#endif
(5)#ifdef
#else
#endif
(6)(用的比较多)
#ifndef
#define
#endif
8. 存在void型指针,但是不存在void数据类型。
//void a; //错
void *a;//对
int b;
a = &b;
int *pb = (int *)a;//需要强制转换
9. ++ 和 * 的优先级相同。 在遇到在一起使用的时候,按照从右往左的顺序来理解。
分享到:
相关推荐
本文将围绕Cocos2dx 3.2版,结合C++编程语言,探讨其核心概念、关键特性和实际应用,以帮助新人快速入门。 一、Cocos2dx概述 Cocos2dx基于C++,但同时支持Lua和JavaScript。它的主要优势在于提供了一套完整的游戏...
学习了C++中的字符串加密解密后,可以进一步研究其他加密算法,如AES、RSA等,或者了解非对称加密和哈希函数等信息安全相关的概念和技术。此外,也可以尝试将加密解密技术应用到实际项目中,如网络通信的安全传输、...
- **解释**:这本书是C++学习的经典教材之一,能够帮助读者建立面向对象的思维方式,深入理解C++的核心概念。 - **建议**:利用这本书来系统地学习C++的基础知识,并通过书中提供的大量实例来练习和巩固所学内容。 ...
C++支持函数和运算符重载,但有时开发者会混淆重载与默认初始化的概念。例如,`Foo f(0);`和`Foo f();`看起来很相似,但前者是显式调用带参数的构造函数,后者则调用默认构造函数。了解两者的区别对于正确实现类的...
Visual C++不仅是一款强大的集成开发环境,也包含了许多高级工具和服务,如调试器、性能分析工具等,对于C++开发者来说非常有用。 #### 7. 类(class)与模板(template) 掌握类和模板是学习C++的关键部分。类是面向...
在C++中,很容易混淆“指向数组的指针”和“指针数组”的概念。这两个概念虽然相似,但有着本质的区别。 ##### 1. 指向数组的指针 指向数组的指针是指针变量,它可以存储一个数组的起始地址。例如,声明一个指向...
变量名、函数名和类名应清晰地反映出它们的用途和功能,避免使用模糊不清或容易引起混淆的缩写。 2. **内存管理**:C++和C语言允许直接管理内存,这就需要程序员理解如何正确地分配和释放内存,避免内存泄漏和悬挂...
- **编译环境**:所有程序均使用Microsoft Visual C++编译器,并介绍C++标准,不涉及Borland C++,以避免概念混淆。 #### 五、本书内容特色 - **粗体字标注**:强调读者必须掌握的核心知识点和容易犯错的地方。 - ...
- **澄清混淆点**:书中特别注重澄清学习过程中容易产生混淆的概念,通过简洁的例子和清晰的解释,帮助读者快速掌握核心要点。 #### 4. 第2版更新内容 - **新增章节**: - **对象的创建与使用**:这部分内容是对...
虽然C++支持运算符重载,但其实现方式存在一些局限性和问题,比如重载后的行为可能不符合直觉,容易引起混淆。 ##### 异常处理机制缺陷 C++的异常处理机制在某些情况下表现不佳,尤其是在资源管理方面。例如,当...
《C++批判》(第三版)是一本由Ian Joyner编写的书籍,旨在对C++语言及其在1990年代编程领域的趋势进行深入分析和批判。本书通过细致的分析,探讨了C++作为一种主流编程语言的优势与不足之处,并提出了对未来编程...
- 有效性:应具有良好的可读性和明确的意义,避免使用无意义或容易混淆的名字。 - 易读性:建议采用驼峰命名法或者下划线分隔等方式,使标识符更易于理解。 - **缩进和注释**: - 缩进:通常采用四个空格作为缩进...