好记性不如烂笔头

个人博客http://huqijun.org,发现更大的世界~

C++ 之函数调用操作符和函数对象

可以为类类型的对象重载函数调用操作符。一般为表示操作的类重载函数调用操作符; 函数调用操作符必须声明为函数成员。一个类可以定义函数调用操作符的多个版本,由形参的数目或类型加以区别; 定义了调用操作符的类,其对象常称为为函数对象(function object)即它们是行为类似函数的对象; ...

2015-11-29 20:27:44

阅读数 221

评论数 0

C++重载下标操作符

//class Foo class Foo { public: Foo():data(10,1) {} int& operator[] (const std::size_t); const int& operator[](co...

2015-11-29 18:42:04

阅读数 189

评论数 0

C++解引用与箭头操作符重载

//class HasPtr class HasPtr { public: //default constructor HasPtr():p(new int) {} //constructor HasPtr(int * i)...

2015-11-29 18:40:45

阅读数 257

评论数 0

C++ 重载自增和自减操作符

C++不要求自增或自减一定作为类的成员,但因为这些操作改变操作对象的状态,所以更倾向于将它们作为成员; 为了与内置操作符一致,前缀式操作符应该返回被增量或者减量对象的引用; 后缀形式的自增或自减少操作符接受一个无用的int 形参来与前缀形式区分 为了与内置操作符一致,...

2015-11-29 18:38:34

阅读数 158

评论数 0

C++箭头操作符重载

箭头操作符,一般都有左右两部分:a->b;(其中,b可以是函数或者成员;) 如何开始:由a开始,分下面两种情况 1、a是指针,那么就是我们熟悉的,指向我们a类型的成员数据或函数“b”;到这里,就结束了! 2、a是对象,那么a必须有成员函数"operator->...

2015-11-29 11:29:35

阅读数 199

评论数 0

C++中的RAII机制详解

这篇文章主要介绍了C++中的RAII机制详解,RAII是Resource Acquisition IsInitialization的简称,是C++语言的一种管理资源、避免泄漏的惯用法,需要的朋友可以参考下 前言 在写C++设计模式——单例模式的时候,在写到实例销毁时,设计的GC类是很巧妙的,而...

2015-11-27 20:05:14

阅读数 152

评论数 0

bash (cmd )管道和重定向

可以使用重定向将命令执行的结果输出到指定文件 eg: ifconfig > 1.log 将ifconfig 的结果输出到1.log 文件 管道的意思是前一个命令的结果作为下一个命令输出,通过| 来实现 eg.  将tail 的输出结果作为grep 的输入,用...

2015-11-26 22:54:07

阅读数 96

评论数 0

重载操作符与转换

重载操作符是具有特殊名称的函数:保留字operator后接需要定义的操作符符号。像任意其他函数一样,重载操作符具有返回类型和形参表; 不能重载的操作符有:: 和.* 以及?: 不能通过连接其他合法符号来创建任何新的操作符 重载操作符必须具有一个类类型操作数,这条规则强制重载操作符不能重...

2015-11-25 20:37:46

阅读数 229

评论数 0

C++ 引用计数(reference count) 实现智能指针

前面说到,含有指针成员的类容易出现悬垂指针的问题,特别是类的对象有复制,赋值等行为时; referecen count 的核心思维是,使用一个计数器来标识当前指针指向的对象被多少类的对象所使用,即记录指针指向对象被引用的次数; 构造函数中创建类的新对象时,初始化引用计数为1; ...

2015-11-24 00:10:49

阅读数 517

评论数 0

C++ 三种常见的管理类中指针成员的方法

C++ Primer 提倡多使用标准库,少使用指针,但是现代程序中还是不可避免的需要使用指针。 包含指针的类需要特别注意复制控制,因为复制指针时只是复制指针的值,即指针中的地址,而不会复制指针指向的对象; 这样会带来以下两种影响: 1.   多个类的对象中的指针是指针的同一块内存,存在一个修...

2015-11-23 00:05:52

阅读数 323

评论数 0

C++ 使用表示容量的当个形参来初始化容器时,有没有使用copy constructor

测试代码: ////////////////////////////////////////////////// */ ////////////////////////////////////////////////// #include #include #include...

2015-11-21 11:03:05

阅读数 154

评论数 0

Windows 下使用cygWin搭建github 环境

CSDN  blog 里面放图片太麻烦了,特别是原先用word 写好的,不能直接拷贝 完整文章放在这个地址:http://wenku.baidu.com/view/f5ff9a1465ce05087732132c   GitHub 当今最为流行,方便的代码仓储工具,正在变的越来越流行。 Git...

2015-11-21 00:09:49

阅读数 168

评论数 0

c++ 默认构造函数,构造函数,复制构造函数,赋值操作符,析构函数调用示例

#include #include #include #include #include #include struct Noname { //default constructor Noname():pstring(new std::string...

2015-11-18 00:16:29

阅读数 159

评论数 0

C++ 怎么在默认构造函数的初始化列表中初始化指针或者引用类型数据成员

C++ primer 的习题中给了一个初始化指针成员的例子: C/C++ code ? 1 2 3 4 5 6 7 8 struct Noname {     Noname():p...

2015-11-17 22:47:50

阅读数 471

评论数 2

C++ OOP 之复制控制

//待补充

2015-11-16 23:05:54

阅读数 204

评论数 0

C++ 定义类类型对象,默认构造函数,带有默认参数的构造函数

class A { public: A() {} }; 定义一个A类型的对象: A a; A a = A(); 以上两种方式是等价的,第一种使得类类型可以向内置类型一样简单的被使用,第二种显示调用构造函数 值得注意都是,  A a;  这种方式不一...

2015-11-15 22:22:28

阅读数 603

评论数 0

从初始化列表和构造函数谈C++的初始化机制

综合而言,C++中类的初始化操作有四个部分组成: 1.初始化列表:所有类非静态数据成员都可以在这里初始化,             所有类静态数据成员都不能在这里初始化 2.构造函数体:对于类非静态数据成员:                 const型成员不能在这里初始化...

2015-11-15 21:30:17

阅读数 133

评论数 0

API、ABI区别

应用程序二进制接口(ABI-Application Binary Interface)定义了一组在PowerPC系统软件上编译应用程序所需要遵循的一套规则。主要包括基本数据类型,通用寄存器的使用,参数的传递规则,以及堆栈的使用等等。 ABI涵盖了各种细节:如数据类型、大小和对齐;调用约定(控...

2015-11-15 14:24:47

阅读数 294

评论数 0

C++ 最常见的显示使用this 指针场景

有一种场景必须显示使用this指针,需要将一个对象整体引用而不是引用对象的一个成员时。最常见的情况是在成员函数中使用this,返回对调用该函数的对象的引用。 #include #include #include #include #include #include class ...

2015-11-15 00:30:57

阅读数 466

评论数 0

C++ 面向对象(OOP)关键知识点---类

1.  类 允许程序员定义自己的类型,它们用起来与内置类型一样容易和直观 简单来说,类就是定义了一个新的类型和一个新的作用域 每个类可以没有成员,也可以定义多个成员,成员可以是数据,函数或类型别名 构造函数一般使用一个构造函数初始化列表,来初始化对象的数据成员 将const 关键字...

2015-11-14 23:54:20

阅读数 188

评论数 0

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