`

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. ++ 和 * 的优先级相同。 在遇到在一起使用的时候,按照从右往左的顺序来理解。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics