C++
文章平均质量分 70
默一鸣
韬光养晦
展开
-
字符串逆序等面试题
几点说明1. 所有题目全部来自网络,书籍,或者我自己的面试经历,本人只是负责搜集整理。在此对原作者表示感谢!2. 我已经尽力确保文字及程序的正确性,但我毕竟是凡人,如果您发现了文章中的错误,或者有更好的解法,请一定留言相告,以免误导大家!3. 所有代码都采用C/C++编写很早就准备写一个字符串系列的面试题,本来已经写好了,大概有十几道题,但是写完才发现,文章好长,连我自己都没有耐心原创 2016-03-12 12:16:22 · 780 阅读 · 1 评论 -
自定义类所占用的内存空间
类所占内存的大小是由成员变量(静态变量除外)决定的,成员函数(这是笼统的说,后面会细说)是不计算在内的。成员函数还是以一般的函数一样的存在。a.fun()是通过fun(a.this)来调用的。所谓成员函数只是在名义上是类里的。其实成员函数的大小不在类的对象里面,同一个类的多个对象共享函数代码。而我们访问类的成员函数是通过类里面的一个指针实现,而这个指针指向的是一个table,t原创 2016-12-03 20:35:00 · 1839 阅读 · 2 评论 -
C++中的定义跟声明详解
"声明"的严谨C++语意,是用以告诉编译器类型及其细节,例如:class MyClass{ //数据成员细节... //成员函数细节...};上述声明仅告诉编译器有自定义类型MyClass,编译器仅对其进行语汇分析及名字的决议,并未占用内存!"定义"的严谨C++语意,即分配内存,编译器将在相对内存地址上为其对象定址!要注意的是,我们不能简单的原创 2016-12-03 20:31:23 · 719 阅读 · 0 评论 -
g++编译支持c++11的方法
[cpp] view plain copy //第一种,直接包含在源程序文件中,如第一行代码所示 #pragma GCC diagnostic error "-std=c++11" #include using namespace std; int main(int argc,char **argv) { cout"he原创 2016-11-24 21:46:36 · 21225 阅读 · 0 评论 -
C/C++中基本数据类型在不同系统中所占空间大小
关于这个基本的问题,很早以前就很清楚了,C标准中并没有具体给出规定那个基本类型应该是多少字节数,而且这个也与机器、OS、编译器有关,比如同样是在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而tuborC下则是2个字节。所以int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的):siz原创 2017-01-25 17:32:05 · 7108 阅读 · 1 评论 -
C++读写配置文件的类
共用版.h文件//----------------------------------------------------------------------------// 程序名称:ConfigFile.h// 程序说明:类 ConfigFile 的定义// 程序作者:// 程序版本:1.0// 开始日期:1999-01-10原创 2020-08-04 17:19:02 · 777 阅读 · 0 评论 -
C++读写配置文件
#include#include #include #includeusing namespace std;class CConfigOperator{public: CConfigOperator(void); ~CConfigOperator(void); void SetFilePath(const string原创 2017-07-25 11:01:04 · 3140 阅读 · 0 评论 -
类方法和实例方法
在OC中,方法前有“+”的表示类方法,前面有“-”的代表实例方法那么究竟什么是类方法,什么是实例方法呢?在什么情况下定义类方法,在什么情况下定义实例方法呢?1.类方法类似于C++中的static函数。它的调用不需要通过实例,也不能调用类中的实例方法。其调用方法为:[类名 方法名]2.实例方法则必须通过实例来调用,换句话说,一个类在没有初始化实例的情况下是不能调用实例方法原创 2017-07-25 15:09:31 · 875 阅读 · 0 评论 -
从内存模型的角度来看C++多态实现机制和C++析构函数为什么要用虚函数
一、从内存模型角度来看C++多态实现机制[cpp] view plain copy#include #include #include using namespace std; class Animal { public: Animal(int a = 1, in原创 2017-11-28 16:17:44 · 420 阅读 · 0 评论 -
运行时多态和编译时多态
前言今日的C++不再是个单纯的“带类的C”语言,它已经发展成为一个多种次语言所组成的语言集合,其中泛型编程与基于它的STL是C++发展中最为出彩的那部分。在面向对象C++编程中,多态是OO三大特性之一,这种多态称为运行期多态,也称为动态多态;在泛型编程中,多态基于template(模板)的具现化与函数的重载解析,这种多态在编译期进行,因此称为编译期多态或静态多态。在本文中,我们将了解:原创 2017-11-28 16:21:47 · 2811 阅读 · 0 评论 -
vs2010 - opencv2.4 配置方法
1、下载软件 下载OpenCV-2.4.0,双击解压到%opencv%(凡是出现%opencv%的地方均替换为你自己opencv的路径全名,如D:\program\opencv)。 下载VS2010,安装。 2、配置OpenCV环境变量 计算机->(右键)属性->高级系统设置->高级(标签)->环境变量->(双击)path(用户,系统里面的path任选其一)-原创 2016-11-20 22:17:20 · 623 阅读 · 0 评论 -
vector遍历方法,c11果然好用
随着C++11标准的出现,C++标准添加了许多有用的特性,C++代码的写法也有比较多的变化。 vector是经常要使用到的std组件,对于vector的遍历,本文罗列了若干种写法。 (注:本文中代码为C++11的代码,需要在较新的编译器中编译运行) 假设有这样的一个vector: vector valList = { 0, 1, 2, 3, 4, 5, 6,原创 2016-11-02 19:56:23 · 4186 阅读 · 0 评论 -
C语言文件的编译与执行的四个阶段并分别描述
C语言文件的编译与执行的四个阶段并分别描述C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下: 从图上可以看到原创 2016-10-12 21:38:24 · 18244 阅读 · 0 评论 -
linux下c++编程环境搭建,运行过程以及调试,内含C++头文件源文件编译过程链接
安装g++环境安装两个RPM包即可搞定[root@localhost Desktop]# rpm -ivh /home/weiwei/Desktop/libstdc++-devel-4.4.5-6.el6.i686.rpm [root@localhost Desktop]# rpm -ivh /home/weiwei/Desktop/gcc-c++-4.4.5-6.el6.i686.原创 2016-05-07 14:00:58 · 5209 阅读 · 4 评论 -
动态链接库DLL
一、DLL简介它是Dynamic Link Library 的缩写形式,DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL原创 2016-05-08 23:20:17 · 2881 阅读 · 0 评论 -
堆和栈的区别 (转贴)
堆和栈的区别 (转贴) 非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥!堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可转载 2016-07-09 19:20:01 · 581 阅读 · 1 评论 -
c++中引用和指针的区别
指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针原创 2016-03-12 11:23:07 · 691 阅读 · 0 评论 -
数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a;转载 2016-03-07 21:27:06 · 515 阅读 · 0 评论 -
c++中的参数传递问题
众所周知,在C++中调用函数时有三种参数传递方式: (1)传值调用; (2)传址调用(传指针); (3)引用传递; 实际上,还有一种参数传递方式,就是全局变量传递方式。这里的“全局”变量并不见得就是真正的全局的,所有代码都可以直接访问的,只要这个变量的作用域足够这两个函数访问就可以了,比如一个类中的两个成员函数可以使用一个成员变量实现参数传递,或者使用static关键字定义,或者使原创 2015-12-13 00:07:32 · 4165 阅读 · 1 评论 -
c++中运算符重载
C++中预定义的运算符的操作对象只能是基本数据类型,实际上,对于很多用户自定义类型,也需要有类似的运算操作。例如: class complex { public: complex(double r=0.0,double I=0.0){real=r;imag=I;} void display(); private: double real; dou转载 2015-03-23 21:25:44 · 761 阅读 · 0 评论 -
C++运算符重载总结
c++的一大特性就是重载(overload),通过重载可以把功能相似的几个函数合为一个,使得程序更加简洁、高效。在c++中不止函数可以重载,运算符也可以重载。由于一般数据类型间的运算符没有重载的必要,所以运算符重载主要是面向对象之间的。1.一般运算符重载在进行对象之间的运算时,程序会调用与运算符相对应的函数进行处理,所以运算符重载有两种方式:成员函数和友元函数。成员函数的形式比较简单,原创 2016-07-06 21:41:44 · 543 阅读 · 0 评论 -
关于C/C++中的类型转换资料集锦
>>>>>>>>>>>>>http://baike.baidu.com/link?url=Y3QGwE3bWOY3VfAHXvB4JYVtLM8mhM060DQrPdeVX__ISZyCzjO1pCDI9H5RCOdIcPmUYeeV_-SgzTYntsRaXaC语言类型强制转换 编辑强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符)原创 2016-09-02 21:03:50 · 1486 阅读 · 0 评论 -
C++引用报错:invalid initialization of non-const reference of type ‘std::string&’ from an rvalue of type
一、invalid initialization of non-const reference of type ‘std::string&’ from an rvalue of type ‘std::string’#include#includeusing std::cout;using std::string;using std::endl;void PrintS原创 2018-01-13 14:54:49 · 9920 阅读 · 0 评论