c++学习笔记
文章平均质量分 73
shitangdejiaozi
游戏开发菜鸟
展开
-
包含对象成员的类 vs普通公有继承的派生类 and 对象成员vs私有继承
包含对象成员的类和公有继承的派生类1,使用环境的不同:普通的继承,用于表达is-a的关系,比如,公鸡是鸡,北极熊是熊。class Bear{};class PloarBear:public Bear{};包含对象成员的类(或者称为包含类),用于表达has-a的关系,比如学生有姓名,有考试分数,在这里,姓名和分数都是类的对象class Student{private原创 2015-08-12 15:45:53 · 1002 阅读 · 0 评论 -
linux下PostgreSQL安装和简单配置
转载自:http://www.ruanyifeng.com/blog/2013/12/getting_started_with_postgresql.html一、安装首先,安装PostgreSQL客户端。sudo apt-get install postgresql-client然后,安装PostgreSQL服务器。sudo apt-get install转载 2016-05-25 14:56:36 · 713 阅读 · 0 评论 -
数值与字符串之间的转换:lexcical_cast 和sstream
在看代码的时候发现在获取网络端口的时候,得到的是整数,想以string的形式存储,进行的类型转换。 lexicial_cast库进行“字面量”的转换,可以进行字符串、整数/浮点数之间的字面转换。 位于名字空间boost,需要包含头文件#include <boost/lexcical_cast.hpp>#include <string>using namespace boost;using原创 2016-03-28 11:27:11 · 739 阅读 · 0 评论 -
c++ bitset类用法
有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假设都使用了std::bitset的using声明:[cpp] view plain copy p转载 2016-04-25 22:07:11 · 384 阅读 · 0 评论 -
深入浅出之正则表达式
先附上几个符号的含义:perl正则表达式语法可参见《perl语言入门》第7、8、9章或boost的文档。这里列出的语法是不全面的,而且部分说明可能并不清楚。 . 任意字符;使用match_no_dot_null标志时不匹配NULL字符; 使用match_not_dot_newline时不匹配换行字符 ^ 匹配行的开始 $ 匹配行的结束转载 2016-04-07 20:40:07 · 290 阅读 · 0 评论 -
linux下g++ 编译时动态库和静态库的链接和头文件问题
原来编译的时候都是用的很随意,没用系统的总结一下,这几天在编译的时候遇到一些下问题,于是就总结一下,省得过几天又给忘了。1.动态库和静态库简介静态库在程序链接的时候会自动的链接到程序里,所以一旦编译完成,静态库就不需要了,静态库以.a结尾。 动态库在编译时不会被连接到目标代码中,而是在程序运行时才被载入,动态库以.so结尾。 静态库相对于动态库来说更高的效率,但是消耗更多的空间。2.动态库的使用原创 2016-03-31 18:02:26 · 9970 阅读 · 0 评论 -
赋值运算符函数的注意事项 ,指针和多维数组的讨论 (c/c++)
1.赋值运算符函数String & String::operator = (String & str) { if(this == &str) return *this; delete[]m_pdata; m_pdata = null; m_pdata = new char[strlen(str.m_pdata)+1]; strcp原创 2015-11-12 11:17:59 · 642 阅读 · 0 评论 -
c/c++ 补漏之动态内存分配,malloc,free,new delete (一)
1.malloc函数原型:extern void * malloc(int size) malloc向系统申请分配size字节的内存,返回的类型为void* ,在使用的时候要强制进行类型转换为你需要的类型。 int * ptr = (int * )malloc(sizeof(int ) * 100);2.free 函数 释放malloc分配的内存注意事项:1)申请了内存之原创 2015-11-10 21:38:15 · 483 阅读 · 0 评论 -
内存管理之常用智能指针的用法和注意事项
我们向系统申请资源,使用完之后必须要还给系统。c++中最常使用的资源就是动态分配的内存,你不使用的时候一定要归还给系统,不然就会出现内存泄露。我们一般会选择去手动释放资源,delete 掉申请的内存。但是人往往就会漏掉这些东西,内存管理就会变得头疼,于是我们就引入了更高效的内存管理方法:智能指针。原创 2015-09-06 16:08:21 · 515 阅读 · 0 评论 -
类模板使用和深入
我们在编写不同类型的参数的类时,特别是对于容器类,除了想保存的对象类型不同外,代码都相同,这时候我们希望一种泛型的类,我们可以将具体的类型用参数的形式传递给它,而不用每次都去实现。c++的类模板为生成通用的类声明提供了一种很好的方法。这也是代码重用的重要的一部分。首先怎样定义一个模板类:template 关键字template 是告诉编译器,将定义一个模板。尖括号内容相当于是参数原创 2015-08-15 16:47:50 · 462 阅读 · 0 评论 -
多重继承
多重继承描述的是多个直接基类的类:class SingingWaiter:public Waiter ,public Singer {...}多重继承也带来了新的问题:1,多个基类继承同一类的多个对象。2,从两个基类继承的同名函数 。在这里我们构建一个有共同祖先的多重继承。class Wroker{};class Waiter:public Worker{};cla原创 2015-08-12 21:27:39 · 485 阅读 · 0 评论 -
linux下使用Scons构建自己的项目程序
原来简单介绍了一种项目自动编译的工具cmake,不过它基本是针对与c++程序而设计的,我感觉cmake已经很方便了,比写Makefile要舒服多了,最近又看到一个scons,瞬间感觉scons才是真爱啊。scons简介SCons 是一个开放源代码、以 Python 语言编写的下一代的程序建造工具。它最初的名字是 ScCons, 基于由 perl 语言编写的 Cons 软件开发而成,它在 2000 年原创 2016-05-27 11:57:19 · 6317 阅读 · 0 评论