//=============threadpool.c========== #include "threadpool.h"#include <stdio.h> pthread_mutex_t ThreadPool::mutex = PTHREAD_MUTEX_INITIALIZER; pthread_cond_t ThreadPool::cond = PTHREAD_COND_INITIALIZER; std::vector<Task*> ThreadPool::tasks;ThreadPool::ThreadPool(int threads) {this->threads = threads;this->shutdown = false;this->counter = 0;this->idle = 0; }void* ThreadPool::process(void *arg) {str...
//#include <iostream>:表示预处理指令(即引入输入输出流) 注意:必须引入<iostream>才能用cout << "你好";来输出(<iostream>表示VS2017中C++自带;(注意:系统自带的用<>))//#include "pch.h":表示引入“标准系统包含文件的包含文件”(或为经常使用,但不常更改的文件)(或特定于项目的包含文件)("pch.h" 是自己创建的;.h表示头文件(注意:自己创建的用“”并且要加“.h”)) 1.使用命名空间的情况:1.1第一种方法...
零基础学 C++、VC++开发,观看地址http://edu.ibeifeng.com/view-index-id-523.html零基础学C#基础语法快速开发 观看地址http://edu.ibeifeng.com/view-index-id-527.html零基础学C++游戏开发从入门到精通 观看地址http://edu.ibeifeng.com/view-index-id-528.html零基础学C++语言开发,轻松入门 观看地址http://edu.ibeifeng.com/view-index-id-529.html零基础学C语言之嵌入式开发从入门到精通 观看地址http://edu.ibeifeng.com/v...
//引用 #include<iostream>usingnamespace std;struct Student{char name[30];int age; };struct Teacher{int &at2;int &bt2; };int GetNum(Student &s2){s2.age = 19;return s2.age; }void main(){int a = 10;//编译器分配4个字节的内存,变量名a就是内存空间的的标识//引用概念//在C++中新增加了引用的概念,C语言中没有引用的概念//引用可以看作一个已定义变量的别名//引用的语法:Type& name = var;//引用做函数参数那?(引用...
Base64原理Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。由于 2^6 = 64,所以每 6 个比特为一个单元,对应某个可打印字符。3 个字节有 24 个比特,对应于 4 个 Base64 单元,即 3 个字节可由 4 个可打印字符来表示。它可用来作为电子邮件的传输编码。在 Base64 中的可打印字符包括字母 A-Z、a-z、数字 0-9 和 +, /。Base64 常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据,包括 MIME 的电子邮...
类引入到眼下为止我们所写的自己定义类型都是keywordstruct,从如今起我们将採用class方式定义类,这样的方式对于学习过其它高级语言包含脚本(Such as Python)的人来说再熟悉只是了.可是在写之前我们还是须要比較一下用struct和class之间有什么差别.首先对于struct,在C兼容性方面非常重要,虽然C++是有别于C的还有一门语言,但很多程序还是必须与C交互,C++有两个重要功能,能够方便的与C交互.当中之中的一个的就是POD,即是Plain Old Dat...
本文是GeekBand课程体系中,侯捷老师讲课内容的部分内容总结。参考书籍如下:Effitive C++ C++ Primer 第五版 http://blog.csdn.net/lwbeyond/article/details/6202256 中的部分图片一定义:C++ 三大函数构造函数:如 : String(const char* cstr = 0);拷贝构造函数 如 :String(const String& str);拷贝赋值函数 如 :String& operator=(const String& str);析构函数:如 :~String(); 其中...
①、文件的创建、打开、关闭;文件的创建、打开:CFile::Open文件的关闭:CFile::Close CFile::modeCreate:以新建方式打开,如果文件不存在,则新建;如果文件已存在,把该文件长度置零,即清除文件原有内容;CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作;CFile::modeRead...
类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。每个对象都是类的一个具体实例(Instance),拥有类的成员变量和成员函数。一.类的定义一个简单的类的定义:class Student{ public://成员变量char *name;int age;float score;//成员函数void say(){cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;} };class是 C++ 中新增的关键字,专门用来定义类。Student是类...
类的继承的概念继承是在保持已有类的基础之上构造新类的过程,而派生是指在已有类的基础之上新增自己的特性而产生新类的过程。二者是对同一个问题的不同描述,继承侧重于保持原有类的特性,而派生侧重于增加新的特性。被继承的类(即原有类)称为基类,派生出的类称为派生类。基类又分为直接基类和间接基类。继承的目的:实现设计与代码的重用派生的目的:对原有的类进行改造以解决基类不能解决的问题。当基类中已有的函数核成员不能...
Java中的泛型编程可以极大的提升编程的效率,比如在android中查找一个控件的ID:标准写法为:TextView tv_text = (TextView)findViewById(R.id.tv_text);或者:ImageView iv_img = (ImageView)findViewById(R.id.iv_img);因为同为查询控件ID,所以上面的写法可以采用泛型编程精简为:protectedfinal <T extends View> T getView(int id) {return (T) findViewById(id); }这样在下次使用的时候就可以写成这样:TextView tv_text = g...
异常处理的思想与程序实现异常处理的基本思想异常处理的语法异常接口声明一个函数显式声明可能抛出的异常,有利于函数的调用者为异常处理做好准备可以在函数的声明中列出这个函数可能抛掷的所有异常类型。例如:void fun() throw(A,B,C,D);若无异常接口声明,则此函数可以抛掷任何类型的异常。不抛掷任何类型异常的函数声明如下:void fun() throw();异常处理中的构造与析构自动的析构1、 找到一个匹配的catch异常处理后初始化...
小猪猪逆袭成博士之C++基础篇(四)关键词:数组,Vector。 一、数组与指针数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据。例如:int a[10],意思就是从a开始有10个连续的int大小的空间。我们还是从初始化说起。我们以数据类型int为例,当然也可由有很多的数据类型,可以是像int,double这种,也可以是自定义的类,一般的初始化方法有:int a[10];int a[10]={0};int a[3]={0,1,2};在前面的文章...
1->简述变量声明和定义的区别为变量分配地址和存储空间称为定义,不分配地址称为声明。一个变量可以在多个地方声明,但只能在一个地方定义。加入extern修饰的变量的声明,说明此变量将在文件以外或者文件的最后面定义。 2->简述sizeof和strlen的区别主要区别如下: sizeof是一个操作符,strlen是库函数;sizeof的参数可以是数据的类型,也可以是变量。而strlen的参数只能是以‘\0’结尾的字符串参数。 ...
编程的学习学无止境,只掌握一门语言是远远不够的,现在我们开始C++的学习之路,下面先看下C++ 与C 的区别 一、C++概述 1、发展历史 1980年,Bjarne Stroustrup博士开始着手创建一种模拟语言,能够具有面向对象的程序设计特色。在当时,面向对象编程还是一个比较新的理念,Stroustrup博士并不是从头开始设计新语言,而是在C语言的基础上进行创建。这就是C++语言。 1985年,C++开始在外面慢慢流行。经过多年的发展,C++已...