每天一个C++
文章平均质量分 65
细嗅
这个作者很懒,什么都没留下…
展开
-
常量指针与指针常量
常量指针//指向const对象的指针const int * ptr;//指向一个int类型常量的指针,const限制其指向对象的类型,并非 ptr本身ptr 本身不是一个常量,不需要对其初始化。同时,也允许对其进行二次复制,使其指向另一个const对象。 唯一不行的就是,不能通过该指针修改其指向的const 对象const int a = 1;const int b = 2;int c =原创 2017-05-10 17:48:32 · 356 阅读 · 0 评论 -
浅谈C++容器
感谢原作者分享:http://www.cnblogs.com/yymn/p/5157841.html浅谈C++容器(一)在面向对象的语言中,大多引入了容器的概念。那么 什么 是 容器?实质上就是一组相同类型对象的集合,但是它又不仅仅像数组那样简单,它实现了比数组更复杂的数据结构,当然也实现了比数组更强大的功能。C++ 标准模板库里提供了10 种通用的容器类,它基本上转载 2017-08-13 20:52:08 · 367 阅读 · 0 评论 -
C++进阶之虚函数表
C++通过继承(inheritance)和虚函数(virtual function)来实现多态性。所谓多态,简单地说就是,将基类的指针或引用绑定到子类的实例,然后通过基类的指针或引用调用实际子类的成员函数(虚函数)。本文将介绍单继承、多重继承下虚函数的实现机制。一、虚函数表为了支持虚函数机制,编译器为每一个拥有虚函数的类的实例创建了一个虚函数表(virtual ta原创 2017-08-11 22:01:25 · 325 阅读 · 0 评论 -
C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法
有些成员变量的数据类型比较特别,它们的初始化方式也和普通数据类型的成员变量有所不同。这些特殊的类型的成员变量包括:a.引用b.常量c.静态d.静态常量(整型)e.静态常量(非整型) 常量和引用,必须通过参数列表进行初始化。 静态成员变量的初始化也颇有点特别,是在类外初始化且不能再带有static关键字,其本质见文末。参考下面的原创 2017-08-10 21:59:17 · 1495 阅读 · 0 评论 -
C++ 智能指针详解
C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_p转载 2017-07-26 14:13:52 · 203 阅读 · 0 评论 -
C++中的静态绑定和动态绑定
C++中的静态绑定和动态绑定(感谢原作者分享:http://www.cnblogs.com/lizhenghn/p/3657717.html)C++在面向对象编程中,存在着静态绑定和动态绑定的定义,本节即是主要讲述这两点区分。我是在一个类的继承体系中分析的,因此下面所说的对象一般就是指一个类的实例。首先我们需要明确几个名词定义:静态类型:对象在声明时采用的类转载 2017-07-26 14:11:10 · 322 阅读 · 0 评论 -
C++的数组元素为什么不能是引用类型
感谢原作者分享:http://blog.xinspace.space/2015/01/25/cpp-array-element-not-ref/这几天在看c++基础内容,看到数组的时候,书里提到数组元素的约束条件:1.元素类型支持赋值操作。2.元素类型支持复制。因此,除了引用类型对象和流对象外,其他的任意内置类型和满足上述约束的类类型均能成为数组的元素。转载 2017-07-31 22:15:46 · 6929 阅读 · 0 评论 -
如何在C中调用C++函数 与 如何在C++中调用C的函数(待修改)
第一个问题:如何在C中调用C++函数网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。 将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)。例如:// C++ code:extern "C" void f(int);void f(int i){ // ...原创 2017-07-13 22:00:38 · 497 阅读 · 0 评论 -
linux下动态链接库(.so)的显式调用和隐式调用
感谢原作者分享:http://blog.csdn.net/lc_910927/article/details/42393121一、显式调用和隐式调用的区别 我们知道,动态库相比静态库的区别是:静态库是编译时就加载到可执行文件中的,而动态库是在程序运行时完成加载的,所以使用动态库的程序的体积要比使用静态库程序的体积小,并且使用动态库的程序在运行时必须依赖所使转载 2017-07-13 21:14:05 · 545 阅读 · 0 评论 -
memcpy memmove区别和实现(如何处理内存重叠问题)
memcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。memmove的处理措施:(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)当源内存的首地址大于目标内存的首地址时,实行正向拷贝(3)当源内存的首地址小于目标内存原创 2017-07-12 20:47:34 · 733 阅读 · 0 评论 -
C++中类的访问权限针对的是类而不是对象!(为什么类中的函数可以访问对象的私有成员?)
我们首先看一段程序:class A {private: int i;public: A(int i): i(i) {} void print(A a) { cout << a.i <<endl; }};int main() { A B(5); A C(4); B.print(C); return 0;}编译通过,原创 2017-06-22 21:18:23 · 4498 阅读 · 0 评论 -
C++动态绑定
[TOC] 首先明确C++中引用或指针的动态类型(dynamic type)与静态类型(static type)是C++支持多态性(polymorphism)的根本所在。首先说明四个概念: 静态类型:对象声明时采用的类型,一旦确定就无法更改,编译期已经确定动态类型:通常是指一个指针或引用在调用时所指向的类型,可以理解为赋值号右侧对象的类型(当然采用直接赋值就是括号中的对象的类型),可以在运行原创 2017-07-10 16:51:53 · 500 阅读 · 0 评论 -
重载(overload), 覆盖(override), 隐藏(hide)的区别
[TOC] 正文开始之前,首先介绍一下3个关键字对应的英文:重载(overload), 覆盖(override), 隐藏(hide)。 下面我们依次介绍。 * 隐藏(hide),直接看代码#include <iostream>using namespace std;class CB {public: void f(int i) { cout << "CB::f原创 2017-05-25 22:30:06 · 412 阅读 · 0 评论 -
C++多态性(待补充)
感谢原作者分享,原文地址http://blog.csdn.net/hackbuteer1/article/details/7475622C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面转载 2017-05-25 15:57:57 · 229 阅读 · 0 评论 -
大端与小端存储模式详解
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big E转载 2017-06-29 11:34:49 · 356 阅读 · 0 评论