随笔分类 - C/C++
摘要:模板定义函数模板:template <typename T> T fun_name(const T&, const T&);类模板:template <typename T> class class_name { public: T t; void test(const T& t); }模板规则类模板作用域在模板定义的整个过程类模板不能重复可以只声明,不定义 形参必需带上typename 或者 class实例化int a = fun_name(3, 4);class_name<int> c1;实例化时机在函数调用或者类实例构建时实例化
阅读全文
摘要:重载操作符重载操作符的定义重载操作符是具有特殊名称的函数:保留字operator后接需定义的操作符符号。如:Sales_item operator+(const Sales_item&, const Sales_item&);class Sales_item{public: Sales_item operator+(const Sales_item & s1, const Sales_item s2) { Sales_item item; item.age = s1.age + s2.age; return item; }private:}重载操作符设计原则1.不要重载
阅读全文
摘要:结构体结构体声明 struct 结构体标签{ 成员变量; } 结构体变量;结构体定义#include <stdio.h>#include <string.h>struct user { int count; char name[20];}leader[3]={0, "Li", 0, "Zhang", 0, "Fun"};int main(int argc, char *args[]) { int i; for (i = 0; i < 3; i++) { printf("%s\n", l
阅读全文
摘要:转载来源:http://www.cppblog.com/prayer/archive/2009/06/01/86402.html####################################### Copyright (c) 1997 George Foot (george.foot@merton.ox.ac.uk)# All rights reserved.#######################################目标(可执行文档)名称,库(譬如stdcx,iostr,mysql等),头文件路径DESTINATION := testLIBS :=INCLUDES
阅读全文
摘要:指针概念 程序运行的数据存储于内存中,以唯一的地址编号标识存储,称为内存地址。指针变量是指的是存储了内存地址的变量。指针声明 int *temp; int *temp;中的temp是变量名,*temp这样代表的是temp所指向的值(*:指针运算符,取其指向的内容)指针定义 int count = 5; temp = &count; (&表示取变量的地址符) 不可以将变量直接赋值给指针,比如int *temp = 5;报错指针类型 指向变量 前面的指针声明与定义已经说明 数组指针 数组名表示数组中首元素的地址。 如:int a[10]; 那么a表示首元素地址,即...
阅读全文
摘要:C的位处理包括6类:& 按位与|按位或~非^异或<< 左移>> 右移& 按位与:相应位数含0,则该位置0 00101110 & 01100101结果00100100| 按位或:相应位数含1,则该位置1 00101110 | 01100101结果01101111~ 非:若位数为1,则置为0;若为0,则置1 ~00101110结果11010001^ 异或:不同位置1,相同位置0 00101110 | 01100101结果01001011<< 左移:缺少位数补000101110 << 1结果01011100>> 右移
阅读全文
摘要:动态库头文件:sales_item.h 编译动态链接库 sales_item.cpp: #编译源文件 g++ -c sales_item.cpp -o bin/sales_item.obj #编译动态链接库 g++ -shared -o bin/sales_item.so bin/sales_ite
阅读全文
摘要:C标准I/O函数putchar(c) // 将字符变量c输出到标准I/Oc = getchar()// 将标准输入的字符赋值给变量c格式化输入输出:printf(格式控制, 输出表列);格式字符汇总表:printf格式字符汇总表格式字符 功能%a 使用科学计数法将实数按十六进制输出,阶码前为字母p(C99标准新增)%A 使用科学计数法将实数按十六进制输出,阶码前为字母P(C99标准新增)%c 输出一个字符%d 输出有符号十进制数%e 使用科学计数法输出实数,阶码前为字母e%E 使用科学计数法输出实数,阶码前为字母E%f 输出十进制实数%g 阶码小于-4或超过指定精度时用%e,否则使用%f格式输
阅读全文
摘要:C语言预编译处理包含三个方面,宏定义,与及条件编译,文件包含1.宏定义解析:用一个指定的标志符来代表一个字符串#define PI 3.141592653无参数宏定义无参数一般大写有得于统一替换(直接修改数值,所有地方都跟着修改)末尾不能加分号(比如#define PI 3.141592653; 程序中 float area = PI*3*3;宏展开得到结果:float area = 3.141592653;*3*3,编译报错)可以层层替换(宏可以使用之前已定义的宏)""号内不转换(printf("PI is a float numer:");语句中的P
阅读全文
摘要:基础语言篇 C++数据类型 C位操作 C预编译处理 C指针 C结构体与枚举类型 C++函数 C++虚函数 C++容器与算法 C++类 C++I/O处理 C++重载操作符与转换 模板与泛型C/C++ 编译和调试 C/C++动态链接 C/C++通用MakeFile(转) gdb简单调试C++工具库 mysql 正则表达式库pcre JSON库jsoncpp protobuf log4cpp clearsilver
阅读全文
摘要:虚函数C++虚函数用于实现动态绑定,或者说多态,默认的类方法是非虚函数,需要动态绑定的类方法,必需显式声明函数 virtual。virtual函数必需在子类中再次声明,明确告诉子类有这个方法,否则编译时报错,getRange方法未声明的错误。#include <iostream>using namespace std;class Range {public: int width; int height; virtual float getRange(); Range(int w, int h):width(w), height(h){}; Range(){...
阅读全文
摘要:C++中的类用于模拟现实中的事物,包含类属性和方法。1.类声明类声明由 class 关键字 组成,加上花括号的类体,与及;作为结尾#include <iostream>using namespace std;class Range {public: int width; int height; int getRange() { return width *height; }; Range(int w, int h):width(w), height(h){}; Range(){};};通常情况下,类声明放在头文件里面,而把方法的定义,如getR...
阅读全文
摘要:1.函数的形参函数的形参为函数提供已命名的局部存储空间fun1 (string name, int age) { std::cout << name << std::endl; std::cout << age << std::endl;}string name 和 int age则为形参,提供类型和命名标识,让编译器知道存储空间大小、名称,形参由调用函数时传递给函数的实参初始化。2.函数实参实参可以是表达式,也可以是变量或者字面型变量。调用函数时,形参被实参初始化。fun1( "peter", 25 );"pete
阅读全文
摘要:1.C++基本数据类型基本数据类型最小存储空间32位计算机字节数byte8位8位char8位8位wchar_c16位16位short16位32位int32位32位long32位32位float32位32位double32位64位long double96位96位ubuntu11.04 32位操作系统下测试如下:#include <iostream>#include <stdio.h>int main(){ std::cout << "整型:" << sizeof(3) * 8 << std::endl; std::
阅读全文
摘要:容器:某一类型数据的集合。C++标准顺序容器包括:vector,list,queue容器初始化 vector<int> t; for (int i = 0; i < 50; i ++) { t.push_back(i); } vector<int> c; // 空容器 vector<int> c1(t); // 容器t的副本 vector<int> c2(3, 4); // 3个值为4的容器 vector<int> c3(t.begin(), t.end() - 10...
阅读全文

浙公网安备 33010602011771号