随笔分类 - C++
摘要:代码: Student a; s.setName("A"); //Studeng *b = new Student(); Student *b; b = new Student(); b->setName("B"); 分析: 定义类对象基本格式是:Student a;在定义之后就已经为a这个对象分配
阅读全文
摘要:代码: class A { public: virtual void Debug(){} }; class B:public A { public: virtual void Debug(){} }; void main() { B b; A a = b; A * point_A = &b; a.D
阅读全文
摘要:C++的重载(overload)与重写(override) 成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual关键字可有可无。 重写是指派生类函数重写基类函数,是C++的多态的表现,特征是:(1)不同的范围(分别位于派生类与基类);(2)
阅读全文
摘要:1、为什么要引入接口? 先来看类的概念: 什么是类?类可以这么理解.类就是功能的集合.类也可以看做是实现一种功能的集合或者方法; 什么是接口?接口可以理解为,对类的规定,对类的约束,甚至对整个项目的约束。 区分概念 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。 抽象类表示的是
阅读全文
摘要:1、基本概念 malloc/free (1)、函数原型及说明 void *malloc(long NumBytes): 该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针NULL。 void free(void *FirstByte): 该函数是将之前用m
阅读全文
摘要:1、sizeof (1)sizeof()是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 (2)功能:获得保证能容纳实现所建立的最大对象的字节大小。 (3)由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间
阅读全文
摘要:Q:int A[2][3]={1,2,3,4,5,6};,则A[1][0]和*(*(A+1)+1)的值分别是(A) A:假设给一个一维数组 int a[5];首先要明白 a 和 &a 的意思,他们地址值一样: 可以把a理解江苏的省会南京市(即江苏省城市排名中的第一个,对应数组中的第一个元素),&a理
阅读全文
摘要:1、strcpy (1)原型 (2)用法 (3)功能 把src所指由NULL结束的字符串复制到dest所指的数组中。 (4)说明 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 (5)举例 // strcpy.c #include #
阅读全文
摘要:Q:不能把字符串"HELLO!"赋给数组b的语句是(B) A、char b[10]={'H','E','L','L','O','!','\0'}; B、char b[10];b="HELLO!"; C、char b[10];strcpy(b,"HELLO!"); D、char b[10]="HELL
阅读全文
摘要:Q:如下代码输出结果是什么? #include<stdio.h> char *myString() { char buffer[6] = {0}; char *s = "Hello World!"; for (int i = 0; i < sizeof(buffer) - 1; i++) { buf
阅读全文
摘要:在C语言中有三种转义字符,它们是:一般转义字符、八进制转义字符和十六进制转义字符。 1、一般转义字符 这种转义字符,虽然在形式上由两个字符组成,但只代表一个字符。常用的一般转义字符为: \a \n \t \v \b \r \f \\ \’ \" 其中,转义字符'\\'代表的反斜杠"\"、转义字符’\
阅读全文
摘要:1、值传递 (1)形参是实参的拷贝(这句话说明形参和实参是两个实体),改变形参的值并不会影响外部实参的值。 (2)从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。 2、指针传递 (1)指针从本质上
阅读全文
摘要:1、typedef typedef并不是定义一个新的类型而是给已有的类型起一个别名,在这一点上与引用的含义类似,引用是变量或对象的别名,而typedef定义的是类型的别名。 它是语言编译过程的一部分,但它并不实际分配内存空间。typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性
阅读全文
摘要:1、const (1)为什么需要const成员函数? C中常用:“ #define 变量名 变量值”定义一个值替代,然而却有个致命缺点:缺乏类型检测机制,这样预处理在C++中成为可能引发错误的隐患,于是引入const。 我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函
阅读全文
摘要:Q:.h头文件中的ifndef/define/endif 的作用? A:防止该头文件被重复引用。 说明: 有些头文件重复包含只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些。 有的会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的) 。 如果头文
阅读全文
摘要:1、何为多态? 定义: 系统在运行时(而非编译时),能够根据其类型确定调用哪个重载的成员函数的能力,称为多态性。 特点: (1)多态是面向对象的重要特性,简单点说:“一个接口,多种实现”,就是同一种事物表现出的多种形态。 (2)多态就是抽象化的一种体现,把一系列具体事物的共同点抽象出来, 再通过这个
阅读全文
摘要:1、作用 ->主要用于类类型的指针访问类的成员,而.运算符,主要用于类类型的对象访问类的成员。 举例: class A { public : int member; } A a; //定义一个结构体类型的对象 A *p=&a; //定义一个指向结构体的指针 那么指针p应使用->来访问成员member
阅读全文
摘要:1、构造函数和析构函数为什么没有返回值? 构造函数和析构函数是两个非常特殊的函数:它们没有返回值。这与返回值为void的函数显然不同,后者虽然也不返回任何值,但还可以让它做点别的事情,而构造函数和析构函数则不允许。 在程序中创建和消除一个对象的行为非常特殊,就像出生和死亡,而且总是由编译器来调用这些
阅读全文
摘要:1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 其余控制变量存储方式的关键字为auto、register、extern。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈
阅读全文
摘要:1、进程间通信方式 (1)windows进程间通信方式 1、文件映射; 2、共享内存(是文件映射的一种特殊情况); 3、邮件槽(mailslot)(点对点消息队列); 4、匿名管道; 5、命名管道; 6、剪贴板; 7、动态数据交换; 8、对象链接与嵌入; 9、远程过程调用; 10、动态链接库; 11
阅读全文

浙公网安备 33010602011771号