【二十】一个面试题

面试题: 写函数判断一个变量是否为指针?要解决这个问题,要用一个巧妙的方法,先回顾一下相关知识点: C++中仍然支持C语言中的可变参数函数 C++编译器的函数匹配调用优先级 重载函数 函数模板 可变参数函数 Tip: 如果同时存在普通函数和其重载版本、模板函数、可变参数函数,编译器会优先调用...

2015-08-28 10:44:16

阅读数 484

评论数 0

【十九】一些实际工程中的问题

1、Bug 在实际工程中内存操作是bug的重要来源 C++将堆内存交由开发人员自由使用,因此 未及时释放,将产生内存泄漏 重复释放同一段内存,行为未知 使用越界,操作了不属于自己的内存 思考: 怎样最大限度的避开上述的使用问题?2、数组类 内存越界的问题常发生于数组的使用中 解决方案:数组...

2015-08-27 12:17:49

阅读数 486

评论数 0

【十八】类模板(下)

本篇接着上一篇的内容介绍!1、类模板多个类型参数和函数模板一样,一个类模板也可以定义多个类型参数! 如下:#include <iostream> using namespace std;template <typename T1, typename T2> class T...

2015-08-26 16:42:12

阅读数 426

评论数 0

【十七】类模板(上)

1、引入类模板C++中可以将模板的思想应用于类,使得类可以不关注具体操作的数据类型,而只关注类所需要实现的功能。C++中的类模板 提供一种特殊的类以相同的行为处理不同的类型 在类声明前使用template进行标识 < typename T> 用于说明类中使用的泛指类型 T 在模板类外部...

2015-08-26 11:17:23

阅读数 385

评论数 0

【十六】函数模板

1、引入泛型编程在以前C语言中,如果一个函数要处理不同的数据类型,那么需要为每种数据类型都定义一个函数实行,例如下面的函数:void Swap(int& a, int& b) { int temp = a; a = b; b = temp; }void Swap(cha...

2015-08-25 17:08:38

阅读数 324

评论数 0

【十五】继承与多态(下)

1、重载和重写思考:重载和重写有什么区别?什么时候是重载,什么时候是重写? 函数重载 必须在同一个类中进行 子类无法重载父类的函数,父类同名函数将被覆盖 重载是在编译期间根据参数类型和个数决定调用函数 函数重写 必须发生于父类与子类之间 并且父类与子类中的函数必须有完全相同的原型 使用virt...

2015-08-24 17:14:46

阅读数 479

评论数 0

【十四】继承与多态(上)

1、函数重写上一篇文章中说到,当子类定义一个与父类同名的成员变量时,父类的该成员变量依然会被继承到子类,它们两者可通过作用域限定符来区分,那么,如果子类中定义了和父类相同类型且同名的函数又会怎样呢?这就是函数重写! 在子类中定义与父类中原型相同的函数 函数重写只发生在父类与子类之间 #includ...

2015-08-24 15:11:46

阅读数 473

评论数 0

【十三】继承中的构造与析构

1、赋值兼容性原则 子类对象可以当作父类对象使用 子类对象可以直接赋值给父类对象 子类对象可以直接初始化父类对象 父类指针可以直接指向子类对象 父类引用可以直接引用子类对象 所以,在上一篇文章中说: 子类是就是特殊的父类!!!2、继承对象模型 类在C++编译器的内部可以理解为结构体 子类是由父...

2015-08-24 11:56:42

阅读数 502

评论数 0

【十二】初探继承

1、继承概念面向对象中的继承指类之间的父子关系 子类拥有父类的所有成员变量和成员函数 子类就是一种特殊的父类 子类对象可以当作父类对象使用 子类可以拥有父类没有的方法和属性 示例:class Parent { private: int a; public: Parent() { ...

2015-08-24 10:15:25

阅读数 412

评论数 0

【十】类的静态成员

1、类的静态成员 在C++中可以定义静态成员变量和静态成员函数 静态成员属于整个类所有,不需要依赖任何对象,会在全局数据区分配空间 静态成员可以是public、private和protected的 可以在类外,通过类名或者对象名直接访问public静态成员 不可以在类外,访问private或pro...

2015-08-23 16:36:59

阅读数 485

评论数 0

【七】C++一些新的关键字 -- new、delete、强制类型转换

1、动态内存分配C++中的动态内存分配已经和C语言有了明显区别: C++中通过new关键字进行动态内存申请 C++中的动态内存申请是基于类型进行的 delete关键字用于内存释放   变量申请和释放:Type* pointer = new Type; // …… delete pointer; ...

2015-08-23 14:55:34

阅读数 1541

评论数 0

【十一】运算符重载(下)

1、回顾上一节 上一节中,我们通过了两个全局友元函数进行了运算符重载,并且简单说明了如何进行类成员函数的运算符重载,这里首先将全局重载函数改写为成员重载函数! 示例: #include using namespace std; class Complex { private: ...

2015-08-23 09:54:16

阅读数 575

评论数 0

【十】运算符重载(上)

1、C++标准库 C++标准库并不是C++语言的一部分 C++标准库是由C++语言编写而成的类库和函数的集合 C++标准库中定义的类和对象都位于std命名空间中 C++标准库的头文件都不带.h后缀 C++标准库涵盖了C库的功能 C库中name.h头文件对应C++中的cname头文件 C++标准库预...

2015-08-22 18:05:22

阅读数 350

评论数 0

【九】面向对象的相关概念

目录目录 1基本概念 2C中类的封装 3构造函数 4初始化列表 5类中的const成员 6初始化与赋值 7析构函数 8构造与析构的调用顺序1、基本概念  类和对象的基本概念 “类”指的是一类事物,是一个抽象的概念 “对象”指的是属于某个类的一个实体,是一个具体存在的事物   Tip:   类...

2015-08-19 11:40:16

阅读数 413

评论数 0

【八】疑难问题小结(一 -- 七篇)

目录目录 1const和引用的疑惑 什么是符号表符号表存储在程序中的哪个地方 怎样定义const常量才会使用符号表 2引用与指针的疑惑 指针与引用的区别 如何理解引用的本质就是指针常量 3重载与默认类型转换 C编译器对字面量的处理方式 当使用字面量对变量进行初始化或赋值时 深入理解重载规则 4C方...

2015-08-17 13:38:19

阅读数 705

评论数 0

【六】C & C++ 函数相互调用

在项目中融合C++和C代码是实际工程中不可避免的,虽然C++编译器能够兼容C语言的编译方式,但C++编译器会优先使用C++的方式进行编译,为了让它们能互相调用,可以利用extern关键字强制让C++编译器对代码进行C方式编译!    1、C++调用C编写的函数假设有如下的代码:  main....

2015-08-15 16:54:21

阅读数 1237

评论数 0

【五】C++函数的升级(二)

目录目录 1函数默认参数 2函数占位参数1、函数默认参数 C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替 只有参数列表后面部分的参数才可以提供默认参数值 一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值 ...

2015-08-15 11:47:48

阅读数 421

评论数 0

【四】C++函数的升级(一)--内联函数

目录目录 1宏的回顾 2内联函数的使用 3内联函数 4内联函数的特点 4编译器的优化 5内联编译的限制 6内联实现机制1、宏的回顾 在C语言中,可以定义宏常量和宏代码片段,但是它们各自都有不足,它们都是在预编译阶段进行简单的文本替换,没有类型安全等相关检查; 在C++中,宏常量可以用const常量...

2015-08-15 11:13:31

阅读数 781

评论数 0

解决 Linux Mint 17.2 Nvidia驱动下屏幕亮度无法调节问题

今天,我使用了Nvidia的专有驱动,然后花了一点时间解决了屏幕无法调节亮度的问题,现将解决方法做个详细说明:  本方法理论上支持Linux Mint 17 以上的版本,至于Ubuntu 和Debian,请自行测试!1、更改专有驱动  打开【系统设置】–在【驱动管理器】中将Nvidia显卡驱动更改...

2015-08-14 19:48:01

阅读数 2782

评论数 0

【三】C++引用机制

目录目录 1变量名回顾 2引用的概念 3引用的意义 4const引用 5引用的本质 6函数返回引用 7C对三目运算符做了什么 8小结   1、变量名回顾 变量是一段实际连续存储空间的别名 程序中通过变量来申请并命名存储空间 通过变量的名字可以使用存储空间   如图:   思考:   对于...

2015-08-14 16:52:19

阅读数 1161

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭