C++基础复习
文章平均质量分 84
CAJET1996
SYSU——2014
展开
-
[c++基础]继承和多态
1. 重载,覆盖,隐藏隐藏: 1) 如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏。 2) 如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏。覆盖:如果派生类的函数与基类的函数同名,并且参数也相同,基类函数有virtual关键字。此时,基类的函数被覆盖。原创 2017-03-20 19:36:08 · 389 阅读 · 0 评论 -
[c++基础] 序
目录程序设计基本概念预处理,const指针与sizeof共有数据保护,静态成员,运算符重载指针与引用函数参数传递,数组面向对象基础:类的四个基本函数封装,继承和多态模板与深/浅复制内存,堆栈,资源,异常处理相关问题四种类型转换和隐式类型转换STL智能指针原创 2017-04-18 16:31:29 · 212 阅读 · 0 评论 -
[c++基础] 智能指针
设计原理:将基本类型指针封装为类对象指针(这个类肯定是个模板,以适应不同基本类型的需求),并在析构函数里编写delete语句删除指针指向的内存空间。auto_ptr 则C++会把m_example所指向的内存回收,使m_example1 的值为NULL,所以在C++中,应绝对避免把auto_ptr放到容器中。即应避免下列代码:vector>m_example;当对容原创 2017-04-05 16:30:18 · 319 阅读 · 0 评论 -
[c++基础] 程序设计基本概念
赋值语句1.i的值为?#include using namespace std;int i = 1;int main() { int i = i;}解析:此时main函数内的i是优先考虑局部变量,除非使用作用域符号,否则是和外面值为1的i是无关的。其次,使用g++编译,g++ main.cpp -Wall就会出现提示说i是未定原创 2017-03-13 22:16:23 · 373 阅读 · 0 评论 -
[c++基础]运算符重载,共有数据保护,静态成员
1. 运算符重载一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好重载为类的友元函数。当运算符重载为类的成员函数时,函数的参数个数比原来的操作个数要少一个;当重载为类的友元函数时,参数个数与原操作数个数相同。2. 共用数据的保护(1)常对象(为了防止成员函数修改常对象中数据成员的值)类名 const 对象名[(实参原创 2017-03-21 16:22:38 · 615 阅读 · 0 评论 -
[c++基础] 类的四个基本函数
1.面向对象的基本概念所谓面向过程的编程思想,就是分析解决问题的步骤,将这些步骤用一个个函数实现,最后一个个调用。所谓面向对象的编程思想,就是将任何事物都看成一个对象,对象有各种属性(attribute)和行为(behavior),在解决问题的过程中,将系统分解,使之模块化。优势:可维护性,可扩展性,可复用性面向对象的程序设计有四个主要特点:抽象、封装、继承、多态。原创 2017-03-17 16:17:02 · 4052 阅读 · 0 评论 -
[c++基础]预处理,const指针与sizeof
const的用法区别const修饰指针int b= 100;const int* a= &b; //情况1int const *a= &b; //情况2int* const a= &b; //情况3const int* const a= &b; //情况4 如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量。可以先不进行初始化,即原创 2017-03-13 21:48:56 · 464 阅读 · 0 评论 -
[c++基础] STL
1. STLcapacity()和reserve()函数在C++中,理解capacity和size之间的区别非常重要。容器的size是指它已经保存的元素的数目;而capacity则是在不分配新的内存空间的前提下它最多可以保存多少元素。 当创建空容器时,容量(capacity)为 0;当用完时,增加原容量为原来2倍。 capacity适用如vector这种元素连续存储的容原创 2017-04-05 16:55:25 · 262 阅读 · 0 评论 -
[c++基础] 四种类型转换和隐式类型转换
static_cast( expression ) 用于数值类型之间的转换,也可以用于指针之间的转换,编译时已经确定好,效率高,但须要自己保证其安全性。(1)用于数值之间的转化, 可以在相关指针在void* 之间转换 (2)在基类和派生类之间进行转换(必须是有继承关系的两个类之间)上行转换:子类指针或引用转换成基类表示——安全下行转换:基类指针或引原创 2017-04-05 15:40:52 · 3881 阅读 · 0 评论 -
[c++基础] 内存,堆栈,资源,异常处理相关问题
1.程序运行的内存空间分布BSS段:(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS段属于静态内存分配。这个段中的变量只占用程序运行时的内存空间,而不占用程序文件的储存空间.data段:数据段(data segment)通常是指用来存放程序中 已初始化的全局变量 的一块内存区域。数据段属于静态内存分配。rodata段: 该段是常量数据段,用于原创 2017-04-05 16:38:33 · 417 阅读 · 0 评论 -
[c++基础] 函数参数传递,数组
1. C++中函数参数传递从概念上来说一下这几种函数传参方式及区别:(1)值传递:形参是实参的拷贝,改变函数形参的值并不会影响外部实参的值,,返回值那是return考虑的;(2)指针传递:指针传递参数从本质上来说也是值传递,它传递的是一个地址。【值传递过程中,被调函数的形参作为被调函数的局部变量来处理,即在函数内的栈中开辟内存空间以存放由主调函数放进来的实参的值,从而成了实参的一个原创 2017-03-23 00:20:49 · 867 阅读 · 0 评论 -
[c++基础]指针与引用
1.引用(1) 声明引用时,必须同时对其进行初始化。且不能给引用本身重新赋值,使他指向另一个变量,因此引用总是const的。即没有:const double const& a=1;只有const double& a=1;(2) 在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。用引用传递函数的参数,能保证参原创 2017-03-14 16:28:57 · 305 阅读 · 0 评论 -
[c++基础] 模板与深/浅复制
1.泛型编程概念:泛型编程是一种基于发现高效率算法的最抽象表示的编程方法,也就是说,以算法为起点并寻找能使其工作且有效率工作的最一般的必要条件集。泛型编程假定有某些基本的法则在支配软件组件的行为,并且基于这些法则有可能设计可互操作的模块。普通函数改写成泛型函数2.深复制与浅复制深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过原创 2017-03-17 16:03:54 · 519 阅读 · 0 评论 -
Linux编程基础知识
关于常用命令:1. cdcd ./目录 进入到对应目录cd ../ 返回上一级的目录cd/home 直接进入home目录2. ls ls 列出当前目录所有文件ls -a 列出当前目录包括隐藏文件的所有文件ls ./目录 列出对应目录中所有文件3.mkdirmkdir test 命令后接要创建的目录的名称原创 2017-04-05 09:39:16 · 224 阅读 · 0 评论 -
C++文件读写与getline()
1.ofstream头文件: 文件不存在时会自动创建文件当文件读写操作完成之后,我们必须将文件关闭以使文件重新变为可访问的。成员函数close(),它负责将缓存中的数据排放出来并关闭文件。这个函数一旦被调用,原先的流对象就可以被用来打开其它的文件了,这个文件也就可以重新被其它的进程所访问了。为防止流对象被销毁时还联系着打开的文件,析构函数将会自动调用关闭函数close。原创 2017-07-01 11:02:48 · 43678 阅读 · 5 评论