C++ 在linux环境获取命令行返回值
摘要:很多时候我们需要 上层代码需要执行 shell 命令,但还要有返回值,例如需要获取 ls 的返回值 接下来介绍几种编程语言的获取命令的返回值的方法 第一种 C++ 代码如下: #include <iostream> #include <string> #include <stdio.h> int e
阅读全文
C++基类的析构函数定义为虚函数的原因
摘要:1:每个析构函数只会清理自己的成员(成员函数前没有virtual)。2:可能是基类的指针指向派生类的对象,当析构一个指向派生类的成员的基类指针,这时程序不知道这么办,可能会造成内存的泄露,因此此时基类的析构函数要定义为虚函数;基类指针可以指向派生类的对象(多态),如果删除该指针delete[]p,就
阅读全文
C++ 多线程编程
摘要:很多的时候我们在写代码的时候会遇到多线程 接下来我简单谢了一个多线程的程序 直接上代码 向线程回调函数中传入 结构体
阅读全文
ubuntu 系统判断优盘的指定文件存在
摘要:有很多的时候 会出现没有用的优盘路径 如果代码中写的是绝对路径 就有可能读不到优盘的内容 ,以下代码就是可以解决这样的问题 我已经封装成一个类 upanpath.h upanpath.cpp main.cpp 可以根据函数的返回值的 不同确定什么原因导致读取失败。
阅读全文
C++ 预处理器
摘要:直接上代码 1.#define 预处理 2.参数宏 3.条件编译 有几个指令可以用来有选择地对部分程序源代码进行编译。这个过程被称为条件编译。 条件预处理器的结构与 if 选择结构很像。请看下面这段预处理器的代码: 您可以只在调试时进行编译,调试开关可以使用一个宏来实现,如下所示: 如果在指令 #i
阅读全文
C++ 文件和流
摘要:到目前为止,我们已经使用了 iostream 标准库,它提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。 本教程介绍如何从文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: 要在 C++ 中进行文件处理,必须在 C
阅读全文
C++多线程的使用
摘要:很多的时候会遇到多线程跑 ,接下来就写了一个 多线程的demo 废话不说直接上代码 在多线程个过程中如果对全局变量进行修改的时候要用互斥锁。 代码在 http://pan.baidu.com/s/1jIrEXP8
阅读全文
C++之友元函数和友元类
摘要:通过friend关键字,我们可以将不属于当前类的一个函数在当前类中加以声明,该函数便可以成为当前类的友元函数。#include<iostream>using namespace std;class book{public: book() { cout <<this->price << endl; /
阅读全文
C++之静态的变量和静态函数
摘要:到目前为止,我们设计的类中所有的成员变量和成员函数都是属于对象的,如我们在前面定义的book类,利用book类声明两个对象Alice和Harry,这两个对象均拥有各自的price和title成员变量,同时还拥有类中所有的成员函数。 除了这种情况以外,我们还有另外一种类型的成员,那就是与static结
阅读全文
C++ 之const的使用
摘要:在类中,有时候为了避免误操作而修改了一些人们不希望被修改的数据,此时就必须借助const关键字加以限定了。借助const关键字可以定义const类型的成员变量、成员函数、常对象以及对象的常引用。 const成员变量 const成员变量其用法和普通的const变量用法相似,在定义时只需在前面加上con
阅读全文
C++之构造函数拷贝
摘要:拷贝构造函数,顾名思义,就是通过拷贝对象的方式创建一个新对象。拷贝构造函数有两种原型(我们继续以book类来说明拷贝构造函数原型): 这两种原型都是book类对象的引用。下面一种原型则规定在创建新对象的时候不得修改被拷贝的对象。如果拷贝构造函数的参数不是对象的引用,则是不允许的。如下面这种构造函数形
阅读全文
C++ 虚函数的使用
摘要:虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。假设我们有下面的类层次: 输出的结果是 这个例子是虚函数的一个典型应用,通过这个例子,也许你就对虚函数有了一些概念。它虚就虚在所谓“推迟联编”或者“动态联编”上,一个类函数的调用并不是在编译时刻
阅读全文
C++使用默认参数的构造函数
摘要:我们可以想象一个这样的场景:某一天书店整理库存,发现了一些非常老的书,为了尽快清空库存,店主想了一下,决定开展一个大甩卖活动,所有的这些书全部以五美元的价格出售。此时如果需要尽快将这些书的信息录入到书店的书单中,为了方便,我们可以在book类中添加一个带默认参数的构造函数。 在本例中,book类中的
阅读全文
C++异常处理
摘要:在程序设计过程中,我们总是希望自己设计的程序是天衣无缝的,但这几乎又是不可能的。即使程序编译通过,同时也实现了所需要的功能,也并不代表程序就已经完美无缺了,因为运行程序时还可能会遇到异常,例如当我们设计一个为用户计算除法的程序时,用户很有可能会将除数输入为零,又例如当我们需要打开一个文件的时候确发现
阅读全文
C++之new和delete操作符
摘要:在C语言中的动态分配和释放内存的函数是malloc calloc 和 free , 而在C++中要用 new new[] delete delete[] 来申请动态空间和释放空间。 注意:的是new、new[]、delete和delete[]是操作符,而非函数;new和delete也是C++的关键字
阅读全文
C++之内联函数
摘要:C++语言新增关键字 inline,用于将一个函数声明为内联函数。在程序编译时,编译器会将内联函数调用处用函数体替换,这一点类似于C语言中的宏扩展。采用内联函数可以有效避免函数调用的开销,程序执行效率更高。使用内联函数的缺点就是,如果被声明为内联函数的函数体非常大,则编译器编译后程序的可执行码将会变
阅读全文
C++之强制类型转化
摘要:在C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast。这四个关键字都是用于强制类型转换的。我们逐一来介绍这四个关键字。 1) static_cast 2) const_cast 在C语言中,const限定符通常被用来限
阅读全文
C++引用
摘要:大家都知道,C++ 语言有一种 很好用的 也是很常用的技术 叫做引用,这个是在C语言的基础上的一个扩冲,类似指针,只是在声明的时候用&取代了* , 引用可以看作是被引用的一个别名,在声明时必须同时进行初始化。 1.函数参数的引用 2.函数引用返回值 在C++中非void型函数需要返回一个返回值,类似
阅读全文