c++
那年晴天
汽车行业
展开
-
C++类中的静态成员变量和静态成员函数的作用
来自:http://blog.csdn.net/kerry0071/article/details/25741425/数据成员可以分为静态变量、非静态变量两种。静态成员:静态类中的成员加入static修饰符,即是静态成员,可以使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以 静态成员不能访转载 2017-03-02 19:31:28 · 201 阅读 · 0 评论 -
c++中的命名空间
在阅读new 与delete相关的东西时,被各种命名空间全局作用域搞得有点乱,在此记录一下。 一、命名空间的定义只要能出现在全局作用域中的东西就可以出现在命名空间中。通常这么定义命名空间:namespace Name { decl and define} // 无须分号,像代码块,而不是类 命名空间有下面两个重要的属性: 1、命名空间可以是不连续的 2转载 2017-03-20 13:37:52 · 383 阅读 · 0 评论 -
C++的精髓——虚函数
引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public:virtual void Eat(){……};void Move();private:};class CChild : public CMan{public:virtual void Eat(){……};private:};CMan m_man转载 2017-03-20 15:13:45 · 617 阅读 · 0 评论 -
c++函数中的默认参数
函数的默认参数值,即在定义参数的时候同时给它一个初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。void Func(int i = 1, float f = 2.0f, double d = 3.0){ cout ", " ", " endl ;}int main(void){ F转载 2017-03-21 11:15:18 · 284 阅读 · 0 评论 -
UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 1. 泛化(Generalization) 【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的转载 2017-03-28 11:48:46 · 199 阅读 · 0 评论 -
C++用new和不用new创建类对象区别
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高转载 2017-03-21 12:26:36 · 304 阅读 · 0 评论 -
Effective C++读书笔记
记得前段时间又一次拿起《Effective C++》的时候,有种豁然开朗的感觉,所以翻出了我第一遍读时做的笔记。只做参考以及查阅之用。如有需要请参阅《Effective C++》书本。 by shenzi/2010.5.17一.让自己习惯C++ 条款01:视C++为一个语言联邦 为了更好的理解C++,我们将C++分解为四个主要次语言:C。说到底C++仍是以C为转载 2017-03-29 10:43:53 · 250 阅读 · 0 评论 -
C++中的静态绑定和动态绑定
C++在面向对象编程中,存在着静态绑定和动态绑定的定义,本节即是主要讲述这两点区分。我是在一个类的继承体系中分析的,因此下面所说的对象一般就是指一个类的实例。首先我们需要明确几个名词定义:静态类型:对象在声明时采用的类型,在编译期既已确定;动态类型:通常是指一个指针或引用目前所指对象的类型,是在运行期决定的;静态绑定:绑定的是静态类型,所对应的函数或属性依赖于对象的静态类型,发生在转载 2017-04-12 14:08:58 · 356 阅读 · 0 评论 -
初始化动态分配的数组
动态分配数组时,如果数组元素具有类类型,将使用该类的默认构造函数实现初始化;如果数组元素是内置类型,则无初始化。也可以使用跟在数组长度后面的一对空圆括号,对数组元素做值初始化。圆括号要求编译器对数组做值初始化。对于动态分配的数组,其元素只能初始化为元素类型的默认值,而不能像数组变量一样,用初始化列表为数组元素提供各不相同的初值。const对象的动态数组如果我们在自由存储区中转载 2017-04-13 09:39:35 · 960 阅读 · 0 评论 -
读书笔记_Effective_C++_条款十一:在operator=中处理自我赋值
转载:http://www.cnblogs.com/jerry19880126/archive/2013/03/21/2972648.html读书笔记_Effective_C++_条款十一:在operator=中处理自我赋值 直观的operator=是这样定义的: 1 class SampleClass 2 { 3 private: 4 in转载 2017-04-28 09:39:45 · 265 阅读 · 0 评论 -
C++函数重定义、重载、重写
C++函数重定义、重载、重写1. 重写 (override): 父类与子类之间的多态性。子类重新定义父类中有相同名称和参数的虚函数。 1) 被重写的函数不能是 static 的。必须是 virtual 的 ( 即函数在最原始的基类中被声明为 virtual ) 。 2) 重写函数必须有相同的类型,名称和参数列表 (即相同的函数原型)3) 重写函数的访问修饰符可以不同转载 2017-03-20 12:12:36 · 563 阅读 · 0 评论 -
C++中public,protected,private的区别
第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访转载 2017-03-20 11:19:29 · 399 阅读 · 0 评论 -
std::map::erase的用法及陷阱
来自:http://blog.csdn.net/lmh12506/article/details/9167653方法一:[cpp] view plaincopystd::map mapTest; bool TestVal(const std::string & val); ...... std::转载 2017-03-02 19:36:41 · 2830 阅读 · 0 评论 -
深入解析C++中的构造函数和析构函数
来自:http://www.jb51.net/article/41073.htm构造函数:在类实例化对象时自动执行,对类中的数据进行初始化。构造函数可以从载,可以有多个,但是只能有一个缺省构造函数。析构函数:在撤销对象占用的内存之前,进行一些操作的函数。析构函数不能被重载,只能有一个。调用构造函数和析构函数的顺序:先构造的后析构,后构造的先折构。它相当于一个栈,转载 2017-03-02 19:49:03 · 426 阅读 · 0 评论 -
C++运算符重载——重载二元运算符
来自:http://www.cnblogs.com/LubinLew/p/CppOperatorOverload-BinaryOperator.html1、重载二元操作符的方法二元运算符又称为双目运算符,即需要2个操作数的运算符,例如 + - * / 等。运算符重载可以分为3种方式:类的非静态成员函数、类的友元函数、普通函数。例如有 2 个操作数 a 和 b,二元运算符 ?转载 2017-03-02 20:18:03 · 2030 阅读 · 0 评论 -
C/C++之回调函数---函数指针的作用
来自:http://blog.csdn.net/kkk0526/article/details/17122081 这篇文章真的很好,让自己真正理解了回调函数的定义以及作用,希望对大家有所帮助吧。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放转载 2017-03-03 10:38:37 · 331 阅读 · 0 评论 -
使用宏定义进行条件编译
main.cpp#include using namespace std;int main(){#ifdef PRINT cout #endif cout return 0;}终端命令行:g++ main.cpp -D PRINT。通过实验发现,-D+宏定义,中间加不加空格,似乎都可以的。自己老是忘记,写个博客记录下原创 2017-03-08 12:43:14 · 1076 阅读 · 0 评论 -
C++ 类的静态成员详细讲解
在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静态成转载 2017-03-20 10:12:56 · 204 阅读 · 0 评论 -
调用.h文件需要注意的地方
自己曾经遇到过一个问题:一个文件的调用失败,关键是自己确定已经把要调用的头文件包含进去了,可是还是不成功,自己就很纳闷了,不得其所。 这样说吧,文件A调用文件B,文件B调用文件C,文件C调用文件A,以上都是.h文件,结果是:文件B调用文件C失败。原因我也不是很清楚,很可能是头文件重复包含。究其原因在与:#progma once。这个是防止头文件重复包含,除掉这行代码,编译通过了了。不原创 2017-03-20 10:31:23 · 1446 阅读 · 0 评论 -
C++中const在函数名前面和函数后面的区别
class Test(){public: Test(){} const int foo(int a); const int foo(int a) const;};一、概念当const在函数名前面的时候修饰的是函数返回值,在函数名后面表示是常成员函数,该函数不能修改对象内的任何成员,只能发生读操作,不能发生写操作。二、原理:我们都知道在调用成员函数的时候编译器会转载 2017-03-20 11:06:44 · 2537 阅读 · 0 评论 -
C++的一些不错开源框架,可以学习和借鉴
【本文系外部转贴,原文地址:http://coolshell.info/c/c++/2014/12/13/c-open-project.htm】下次造轮子前先看看现有的轮子吧值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工转载 2017-08-31 16:57:29 · 4986 阅读 · 0 评论