`

C++ 容易混淆的概念分析

阅读更多
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 3.2版,结合C++编程语言,探讨其核心概念、关键特性和实际应用,以帮助新人快速入门。 一、Cocos2dx概述 Cocos2dx基于C++,但同时支持Lua和JavaScript。它的主要优势在于提供了一套完整的游戏...

    c++字符串加密解密

    学习了C++中的字符串加密解密后,可以进一步研究其他加密算法,如AES、RSA等,或者了解非对称加密和哈希函数等信息安全相关的概念和技术。此外,也可以尝试将加密解密技术应用到实际项目中,如网络通信的安全传输、...

    给C++初学者的忠告

    - **解释**:这本书是C++学习的经典教材之一,能够帮助读者建立面向对象的思维方式,深入理解C++的核心概念。 - **建议**:利用这本书来系统地学习C++的基础知识,并通过书中提供的大量实例来练习和巩固所学内容。 ...

    C++语言: 99个常见编程错误

    C++支持函数和运算符重载,但有时开发者会混淆重载与默认初始化的概念。例如,`Foo f(0);`和`Foo f();`看起来很相似,但前者是显式调用带参数的构造函数,后者则调用默认构造函数。了解两者的区别对于正确实现类的...

    学习C++朋友的50条建议

    Visual C++不仅是一款强大的集成开发环境,也包含了许多高级工具和服务,如调试器、性能分析工具等,对于C++开发者来说非常有用。 #### 7. 类(class)与模板(template) 掌握类和模板是学习C++的关键部分。类是面向...

    C++程序设计语言中数组和指针的探讨

    在C++中,很容易混淆“指向数组的指针”和“指针数组”的概念。这两个概念虽然相似,但有着本质的区别。 ##### 1. 指向数组的指针 指向数组的指针是指针变量,它可以存储一个数组的起始地址。例如,声明一个指向...

    高质量C++/C 编程指南

    变量名、函数名和类名应清晰地反映出它们的用途和功能,避免使用模糊不清或容易引起混淆的缩写。 2. **内存管理**:C++和C语言允许直接管理内存,这就需要程序员理解如何正确地分配和释放内存,避免内存泄漏和悬挂...

    易学C++(高清PDF)

    - **编译环境**:所有程序均使用Microsoft Visual C++编译器,并介绍C++标准,不涉及Borland C++,以避免概念混淆。 #### 五、本书内容特色 - **粗体字标注**:强调读者必须掌握的核心知识点和容易犯错的地方。 - ...

    C++编程思想(第2版)

    - **澄清混淆点**:书中特别注重澄清学习过程中容易产生混淆的概念,通过简洁的例子和清晰的解释,帮助读者快速掌握核心要点。 #### 4. 第2版更新内容 - **新增章节**: - **对象的创建与使用**:这部分内容是对...

    C++ FQA Lite

    虽然C++支持运算符重载,但其实现方式存在一些局限性和问题,比如重载后的行为可能不符合直觉,容易引起混淆。 ##### 异常处理机制缺陷 C++的异常处理机制在某些情况下表现不佳,尤其是在资源管理方面。例如,当...

    c++批判(第三版,英文版)

    《C++批判》(第三版)是一本由Ian Joyner编写的书籍,旨在对C++语言及其在1990年代编程领域的趋势进行深入分析和批判。本书通过细致的分析,探讨了C++作为一种主流编程语言的优势与不足之处,并提出了对未来编程...

    Visual C++ 实用教程 (郑阿奇 着)电子工业【khdaw_seven】.pdf

    - 有效性:应具有良好的可读性和明确的意义,避免使用无意义或容易混淆的名字。 - 易读性:建议采用驼峰命名法或者下划线分隔等方式,使标识符更易于理解。 - **缩进和注释**: - 缩进:通常采用四个空格作为缩进...

Global site tag (gtag.js) - Google Analytics