c++
文章平均质量分 63
Mr_倪
这个作者很懒,什么都没留下…
展开
-
C++中继承,虚函数的调用问题
类继承代码如下问:调用输出的结果是什么class CA{public:virtual void fun1(){cout}void fun2(){fun1();cout}};class CB:public CA{public:virtual void fun1(){cout}void fun2(){fun原创 2016-05-06 16:34:57 · 494 阅读 · 0 评论 -
C++类的实例化的两种方法
/* * HelloWorld.cpp * * Created on: 2016年7月13日 * Author: zroad */#include#include#includeusing namespace std;class C {public: C(string s = "", int i = 0, double d = 1.0) {转载 2016-08-24 11:41:00 · 882 阅读 · 0 评论 -
C++中.和->运算的区别
这两个符号都是用于对象成员的引用。1、运算符“.” 用于通过对象名和成员运算符访问对象中的成员 这种引用方式的一般形式为: 对象名.成员名 如例子: stud1.display( ) 例子中stud1为对象名,而display()为对象stud1的成员函数,通过这种方式,可以实现对类中函数的调用,在调用的时候要注意成员函数是public、private、或者protected。转载 2016-08-25 10:43:54 · 545 阅读 · 0 评论 -
C++默认构造函数的访问类型解析
问:c++系统自动生成的构造函数是公有的还是私有的,不是说class构造类成员默认是私有吗?答: 默认构造函数能在main中实列化对象所以为public,所谓的默认类成员为私有是指在未显式声明的情况下为private。即. class A{A();....}; viod main(){ A a; }将会报错。原创 2016-09-19 10:19:57 · 502 阅读 · 0 评论 -
栈内存指针的问题
这几天在学习C过程中,在使用指针作为函数参数传递的时候出现了问题,根本不知道从何得解:源代码如下: createNode(BinNode *tree,char *p) { tree = (BinNode *) malloc(sizeof(BinNode)); tree->data = *p; }该代码段的意图是通过一个函数创建一转载 2016-10-09 11:29:37 · 336 阅读 · 0 评论 -
c++中switch的default问题
一般这么写: swith(变量) { case xxx: …… break; case xxx: …… break; …… default: …… } default就是当变量的取值不在上面任何一个case的情况下,语句要做处理,其实也是一种case,只不过就是指“除了指定的几个case以外的其他情况”转载 2016-10-09 11:30:37 · 5164 阅读 · 0 评论 -
C++默认构造函数详解
C++默认构造函数默认构造函数默认的构造函数是指为所有参数都提供了默认值的构造函数,通常是指无参的构造函数。比如下面的类Test,它的默认构造函数就是Test()。class Test{public: Test(){} // default constructor} ;如果你没有为你的类提供任何构造函数,那么编译器将自动为你生成一个默认的无参构造函原创 2016-09-20 10:32:11 · 301 阅读 · 0 评论 -
C++中各种基本数据类型转换为string类型
string 转 long 那必须是万年atoi(),不过得配合c_str()使用![plain] view plain copy#include #include #include using namespace std; int main () { string a =转载 2016-09-08 21:00:25 · 2829 阅读 · 0 评论 -
为什么C++中不同指针指向同一字符串,指针地址是相同的 ?
代码如下:#include using namespace std; int _tmain(int argc, _TCHAR* argv[]){ char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc";原创 2016-09-24 21:01:23 · 2347 阅读 · 0 评论 -
c++中string的四大函数实现
1.strcat原型:char* strcat(char *strDest, const char *strSrc);[cpp] view plain copychar *strcat(char *strDest, const char *strScr) { assert((strDest!=NULL) && (strScr!转载 2016-10-11 10:33:40 · 466 阅读 · 0 评论 -
23种常用设计模式
目录创建型1. Factory Method(工厂方法)2. Abstract Factory(抽象工厂)3. Builder(建造者)4. Prototype(原型)5. Singleton(单例)结构型6. Adapter Class/Object(适配器)7. Bridge(桥接)8. Composite(组合)9. Decorator(装饰)转载 2016-10-12 16:29:45 · 252 阅读 · 0 评论 -
Java是类型安全的语言,而C++是非类型安全的
有过C++开发经验的人会发现,我们可以将0作为false,非零作为true。一个函数即使是bool类型的,但是我们还是可以返回int类型的,并且自动将0转换成false,非零转换成true。代码实例如下: 1 #include 2 #include 3 using namespace std; 4 5 bool fun()//函数返回类型是bool,但是我们在函数中可以返回i转载 2016-10-06 16:01:26 · 560 阅读 · 0 评论 -
C++中父类的析构函数为什么要为虚函数
注:本文内容来源于zhice163博文,感谢作者的整理。1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生。 下面转自网络:源地址 http://blog.sina.com.cn/s/blog_7c773cc50100y9hz.html a.第一段代码 #includeusing nam转载 2016-10-08 11:33:36 · 1415 阅读 · 0 评论 -
c++虚函数经典例子
c++虚函数经典例子演示c++博大精深,封装,继承,多态是c++的三大特征,c++很强大,但是强大的东西理解起来就是要比不强大的难一点,所以现在看看c++的多态:多态条件:1.必须是公有继承。2.必须是虚函数一个好的程序要对修改封闭,对扩展开放,虚函数就能很好的解决这个问题,基类的指针指转载 2017-06-26 17:38:27 · 1667 阅读 · 0 评论 -
C++面向对象静态成员变量和静态函数的相关概念及理解
静态成员不可在类体内进行赋值,因为它是被所有该类的对象所共享的。你在一个对象里给它赋值,其他对象里的该成员也会发生变化。为了避免混乱,所以不可在类体内进行赋值当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。静态方法就是与转载 2016-08-24 10:02:51 · 362 阅读 · 0 评论 -
C++中vector内存扩充机制
为了支持随机访问,vector中的元素采用顺序存放,即每一个元素紧挨着前一个元素进行存储。那么现在只有可能出现问题了,当内存中没有足够连续的空间去存放新插入来的元素怎么办,C++是这样处理的:重新分配内存空间,将原来旧的元素全部复制到新的存储空间中去,然后再插入新的元素。因此可以看出,如果内存不是特别充足或者内存中没有较大块的空闲空间的,向vector容器中插入元素可能会有相当大的CPU开销。其中转载 2016-08-22 21:33:32 · 4421 阅读 · 0 评论 -
c++int转string
本以为这么多年C#经验,学个C++没多难,现在发现错了。C++真TM难。今天遇到int转string绊了半天,方法很多,不知道为什么搞那么复杂,我只挑最简单易懂的,管他效率不效率的。int转stringint n = 0;std::stringstream ss;std::string str;ssss>>str;string转intstd::string原创 2016-05-07 23:17:06 · 342 阅读 · 0 评论 -
指针指向0的问题
问:定义指针变量int *a=0;是指针变量指向地址为零的数据吗?答:指针赋0,就是不指向任何对象,相当于NULL转载 2016-05-08 21:57:03 · 3033 阅读 · 0 评论 -
Socket通信原理探讨(C++为例)
Socket通信原理探讨(C++为例) 一、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类:1、消息传递(管道、FIFO、消息队列)2、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量)3、共享内存(匿名的和具名的)4、远程过程调用(Solaris门和Sun RPC)转载 2016-07-05 15:49:53 · 303 阅读 · 0 评论 -
c/c++ 管道编程
c/c++ 管道编程 (2011-05-28 11:38:02)转载▼标签: 管道 句柄 进程 创建 函数 it分类: programming概述 管道(Pipe)实际是用于进程间通信的一段共享内存,创建管道的进程称为管道服务器,连接到一个管道的转载 2016-07-05 15:51:02 · 1205 阅读 · 0 评论 -
segment fault
一个小bug:calloc中出现的segment fault 2013-10-09 14:44:30分类: C/C++原文作者的博客数量虽然少,但每一篇都很不错。挺期待他博客的更新。就转载了其中一篇,与内存管理以及指针越界访问的知识有关。原文地址:http://blog.csdn.net/redredbird/article/details/6242转载 2016-07-05 15:54:48 · 627 阅读 · 0 评论 -
C++继承类和基类之间成员函数和虚函数调用机制
C++继承类和基类之间成员函数和虚函数调用机制今天去参加百度的面试,遇到一个关于虚函数的机制的问题,我一直认为就是为了让基类指针或引用(指向继承类)能够看到基类的虚函数(当基类的虚函数没有被继承类重写),但是继承类又怎么看到基类的普通成员函数呢?我开始想,好想不可以调用基类的成员函数,因为基类的成员函数不是虚函数,在虚表找不到它,好吧,明天被鄙视了。回到家好好的研究了一下虚函数转载 2016-07-08 16:46:36 · 897 阅读 · 0 评论 -
Linux下gdb中c++调试
list命令后显示No symbol table is loaded. Use the "file" command.原来编译用:gcc -o filename filename.c解决办法,编译时加 一定要加-g:gcc -o filename -g filename.c使用 GDB 调试程序之前,必须使用 -g 选项编译源文件。可在 makefile 中如下定义 CFLAG转载 2016-08-17 11:31:25 · 364 阅读 · 0 评论 -
C++中函数默认参数匹配问题
默认参数在函数参数较多时是非常有用的.可以只传必须的值,其它取默认值.使用方法如下: 1.默认参数是严格按照从左至右的顺序使用所以只有如下使用才是合法的(1)参数全部为默认值. void Fun( int a = 1, int b = 2, int c = 3)(2)void Fun(int a , int b = 2, int c = 3)(3)v转载 2016-08-17 15:46:48 · 2539 阅读 · 0 评论 -
C++调用C程序
C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误。要解决这个问题,就要在 C++文件里面显示声明一下哪些函数是C写的,要用C的方式来处理。1.引用头文件前需要加上 extern “C”,如果引用多个,那么就如下所示extern “C”{#include “ s.h”#include “t.h”#include “g.h”转载 2016-08-20 09:44:57 · 266 阅读 · 0 评论 -
C++函数指针的应用
在C/C++中存在着函数指针,即指向函数的指针。我目前已知的两种使用方法是: [cpp] view plain copy#include #include typedef int* PINNT; #define PP int* int funcA(int a,int b); int funcB(in转载 2016-08-20 22:40:56 · 242 阅读 · 0 评论 -
C++友元重载运算符,模板类友元重载
#include using namespace std; template class T> class Test; // 模板类前置声明 templateclass T> ostream& operator const Test& obj); // 模板类友元前置声明转载 2016-08-21 15:09:31 · 378 阅读 · 0 评论 -
C++虚继承的意义
C++虚继承可以防止多重继承产生的二义性问题。 虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base class derived1 : virutal public base class derived2 : virtual转载 2016-08-22 19:08:12 · 389 阅读 · 0 评论 -
C++虚函数实现原理
1、多态的实现机制 C++在基类中声明一个带关键之Virtual的函数,这个函数叫虚函数;它可以在该基类的派生类中被重新定义并被赋予另外一种处理功能。通过指向指向派生类的基类指针或引用调用虚函数,编译器可以根据指向对象的类型在运行时决定调用的目标函数。这就实现了多态。2、实例[cpp] view plain copy转载 2016-08-22 21:11:06 · 316 阅读 · 0 评论 -
单例模式
1.定义: 某一个类只有一个实例,并且这个实例是在类内部进行实例化,并向整个系统提供该实例。 2.单例模式的通用代码: public sealed class Singleton { private static sealed Singleton _singleton = new Singleton(); private Singleton() { } public static Singleto转载 2017-07-10 11:30:21 · 177 阅读 · 0 评论