c++
文章平均质量分 78
chenglove1314
这个作者很懒,什么都没留下…
展开
-
vector容器与iterator容器
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准 C++引入的标准库的一部分 ,为了使用vector 我们必须包含相关的头文件 :#include 使用vector有两转载 2014-08-01 19:31:26 · 439 阅读 · 0 评论 -
C++虚函数与虚函数表解析
虚函数的定义: 虚函数必须是类的非静态成员函数(且非构造函数),其访问权限是public(可以定义为private or proteceted, 但是对于多态来说,没有意义。),在基类的类定义中定义虚函数的一般形式: virtual 函数返回值类型 虚函数名(形参表) { 函数体 }虚函数的作用是实现动态联编,也就是在程序的运行阶段动态地选择合适的成员函数,在定义了虚函数后,转载 2014-08-28 13:51:04 · 455 阅读 · 0 评论 -
C++之继承与派生(2)
上一节,主要讲解了有关派生类继承方式的内容。那么今天就来说说派生类的构造函数和析构函数,以及怎么样在派生类中显式访问积累成员。大家都知道,基类的构造函数和析构函数是不能被继承的,因此我们必须在派生类的构造函数中对基类的构造函数所需要的参数进行设置。同样,对于派生类对象的清理工作也需要加入新的析构函数。 1.那么该如何构造呢?对于简单的派生类,即只有一个基类,且直接派生(多继承将在转载 2014-08-28 10:57:07 · 509 阅读 · 0 评论 -
中缀表达式转换为后缀表达式
一、后缀表达式求值后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 + 8 * + 3 + *,则其求值过程如下:1)遍历表达式,遇到的数字首先放入栈中,此时栈如下所示:2)接着读到“+”,则弹出3和2,执行3+2,计算结果等于5,并将5压入到栈中。3)读到8,将其直接放入栈中。转载 2014-09-11 18:01:46 · 499 阅读 · 0 评论 -
使用一个函数模拟C++中的strstr()函数
#include #include using namespace std;const string fun(const string & str,const string& str1){ string str2; for(int i=0;i<str.length();i++) { int j=0; if(str[i]==str1[j]) { int temp=s原创 2014-09-12 19:54:21 · 432 阅读 · 0 评论 -
C++之多态性与虚函数
面向对象程序设计中的多态性是指向不同的对象发送同一个消息,不同对象对应同一消息产生不同行为。在程序中消息就是调用函数,不同的行为就是指不同的实现方法,即执行不同的函数体。也可以这样说就是实现了“一个接口,多种方法”。 从实现的角度来讲,多态可以分为两类:编译时的多态性和运行时的多态性。前者是通过静态联编来实现的,比如C++中通过函数的重载和运算符的重载。后者则是通过动态联转载 2014-08-21 16:36:47 · 456 阅读 · 0 评论 -
C++的强制类型转换
C++的强制类型转换c/c++强制类型转换Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意?A:转换的含义是通过改变一个变量的类型为别的类型从而改变该变量的表示方式。为了类型转换一个简单对象为另一个对象你会使用传统的类型转换操作符。比如,为了转换一个类型为doubol转载 2014-11-08 22:13:25 · 413 阅读 · 0 评论 -
C++之继承与派生(1)
继承是面向对象程序设计中的重要特性,是软件复用的一种形式。其实继承和派生就是同一种概念的不同说法罢了,通常我们说子类继承父类,父类派生出子类。说实话,学习和了解了C++的继承与派生后,发现我对面向对象中的继承与派生有了更深刻的理解。在更加深入了解C++关于继承方面的知识之前,我想先讲一下C++中派生与继承的基本概念,它是之后学习派生类的构造与析构,以及多重继承等的基础。 1.派生类的声明转载 2014-08-28 10:44:13 · 498 阅读 · 0 评论 -
浅谈C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2014-08-28 11:11:52 · 442 阅读 · 0 评论 -
C++模板详解
一、类模板的默认模板类型形参 1、可以为类模板的类型形参提供默认值,但不能为函数模板的类型形参提供默认值。函数模板和类模板都可以为模板的非类型形参提供默认值。 2、类模板的类型形参默认值形式为:template class A{};为第二个模板类型形参T2提供int型的默认值。 3、类模板类型形参默认值和函数的默认参数一样,如果有多个类型形参则从第一个形参设定了默转载 2014-08-26 20:36:08 · 472 阅读 · 0 评论 -
vector中的reserve和resize
vector 的reserve增加了vector的capacity,但是它的size没有改变!而resize改变了vector的capacity同时也增加了它的size!原因如下: reserve是容器预留空间,但在空间内不真正创建元素对象,所以在没有添加新的对象之前,不能引用容器内的元素。加入新的元素时,要调用push_back()/insert()函数。 r转载 2014-08-01 21:14:21 · 525 阅读 · 0 评论 -
C++STL中vector容器 begin()与end()函数、front()与back()的用法
在正式进入学习C++STL中的最基本的容器:vector之前,先八卦一下,我是非计算机专业的学生,但对计算机编程,对软件开发却有着浓厚的兴趣,因此,大学四年一直以C++作为自己学习计算机编程的主攻方向,虽然,现在的我还很菜,相信通过我坚持不懈的努力,终究有一天,我会学有所成! 向量容器(vector)是一种顺序容器,是一块连续分配的内存,支持随机访问,从数据安排的角度看,和数组极其相转载 2014-08-01 21:21:12 · 1459 阅读 · 0 评论 -
C++中this指针的使用
this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子: void Date::setMonth( int mn ) { month = mn; // 这三句是等价的 this->month = mn; (*this).month = mn; } 1. this只能在成员函数中使用。全局函数,静态函数都转载 2014-08-19 10:52:57 · 434 阅读 · 0 评论 -
C++ 构造函数和析构函数
1.C++规定,每个类必须有默认的构造函数,没有构造函数就不能创建对象。 2.若没有提供任何构造函数,那么c++提供自动提供一个默认的构造函数,该默认构造函数是一个没有参数的构造函数,它仅仅负责创建对象而不做任何赋值操作。 3.只要类中提供了任意一个构造函数,那么c++就不在自动提供默认构造函数。 4.类对象的定义和变量的定义类似,使用默认构造函数创建对象的时候转载 2014-08-07 21:04:54 · 551 阅读 · 0 评论 -
C++和JAVA实例化对象的区别
JAVA:A a = new A();为A对象创建了一个实例,但在内存中开辟了两块空间:一块空间在堆区,存放new A()这个对象;另一块空间在堆栈,也就是栈,存放a,a的值为new A()这个对象的内存地址。因为java在JVM中运行,所以a 描述的内存地址不一定是这个对象真实内存的地址。Object o; // 这是声明一个引用,它的类型是Object,他的值为转载 2014-08-10 15:42:27 · 474 阅读 · 0 评论 -
C++中引用与指针的区别
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别转载 2014-08-10 18:18:02 · 497 阅读 · 0 评论 -
C++容器:容器的基本操作
1.容器位置操作:c.begin() 返回一个迭代器,它指向容器 c 的第一个元素c.end() 返回一个迭代器,它指向容器 c 的第一个元素c.rbegin() 返回一个逆序迭代器,它指向容器 c 的最后一个元素c.rend() 返回一个逆序迭代器,它指向容器 c 的第一个元素前面的位置 2.顺序容器添加元素操作:注转载 2014-09-08 14:39:43 · 669 阅读 · 0 评论 -
C++中拷贝构造函数
C++中拷贝构造函数1.什么是拷贝构造函数:拷贝构造函数嘛,当然就是拷贝和构造了。(其实很多名字,只要静下心来想一想,就真的是顾名思义呀)拷贝又称复制,因此拷贝构造函数又称复制构造函数。百度百科上是这样说的:拷贝构造函数,是一种特殊的构造函数,它由编译器调用来完成一些基于同一类的其他对象的构建及初始化。其唯一的参数(对象的引用)是不可变的(const类型)。此函数经常用在函数调用时转载 2014-08-13 16:47:34 · 450 阅读 · 0 评论 -
C++ 智能指针详解
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::shared转载 2014-11-11 10:56:37 · 493 阅读 · 0 评论