随笔分类 - c++/c
摘要:类模版中声明static成员template class Foo{ public: static size_t count() { ++ctr; cout size_t Foo::ctr = 0; //类外类模版Foo每次实例化表示不同的类型,相同类型的对象共享一个st...
阅读全文
摘要:1. 继承方式public 父类的访问级别不变protected 父类的public成员在派生类编程protected,其余的不变private 父类的所有成员变成private#include using namespace std;class base{ public: ...
阅读全文
摘要:头文件#include 函数实现templateInputIterator find (InputIterator first, InputIterator last, const T& val){ while (first!=last) { if (*first==val) retu...
阅读全文
摘要:erase函数的原型如下:(1)string& erase ( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator...
阅读全文
摘要:一. strcpy代码实现#include #include #include //#include using namespace std;int strlen(const char *src){ assert(src != NULL); int lens = 0; while ...
阅读全文
摘要:最通用的模板交换函数模式:创建临时对象,调用对象的赋值操作符template void swap ( T& a, T& b ) { T c(a); a=b; b=c; } 需要构建临时对象,一个拷贝构造,两次赋值操作。针对int型优化void swap(int & ...
阅读全文
摘要:问题由来时间戳转换(时间戳:自 1970 年1月1日(00:00:00 )至当前时间的总秒数。)#include #include int main(int argc, const char * argv[]){ time_t t; struct tm *p; t=1408...
阅读全文
摘要:1. substr()2. replace()例子:split()字符串切割: substr函数原型:string substr ( size_t pos = 0, size_t n = npos ) const;解释:抽取字符串中从pos(默认为0)开始,长度为npos的子字串#include #...
阅读全文
摘要:首先强调 指针数组归根结底是个数组;数组指针归根结底是个指针。数组指针以int (*int)[10]为例()的优先级大于[],因此首先它是一个指针,它指向一个数组,数组的维数是10。因此数组指针也称为“行指针”,它的跨度是一行一行的。例如#include using namespace std;in...
阅读全文
摘要:地产中介卖的是房子,其使用的中介软件系统应该有个类用来描述卖掉的房子class HomeFoeSale { ......}但是任何房子都是独一无二的,不应该存在两个房子拥有同样的属性,因此以下操作不应该正确!HomeForSale h;HomeForSale h1(h); //调用复制构造...
阅读全文
摘要:测试平台:linux 32位系统用sizeof()运算符计算分配空间大小。单位:字节1. 数组名与变量名的区别int main(){ char q[] = "hello"; cout using namespace std;class A{};int main(){ A a; ...
阅读全文
摘要:表示时间的三种类型日历时间:从一个时间点到现在的秒数,用time_t表示始终滴答时间:从进程启动到现在时钟的滴答数(每秒一般包含1000个)。用clock_t表示分解时间:分解的数据结构如下。用tm表示 从计算机里获得时间的方法tim_t time(time_t *time...
阅读全文
摘要:目录 0. 扫盲 1. 编译,链接 2. Makefile文件执行 3. Makefile书写规则 4. 案例 5. Makefile是如何工作的 6. 拔高,参考0. 扫盲Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员...
阅读全文
摘要:http://blog.csdn.net/wfdtxz/article/details/7368357
阅读全文
摘要:#include #include #includeusing namespace std;int i = 3;int main(){ setlocale(LC_ALL, "zh_CN.UTF-8"); wchar_t a[] = L"你好"; wcout << a << endl; }
阅读全文
摘要:静态成员函数,可以不通过对象来调用,即没有隐藏的this指针。virtual函数一定要通过对象来调用,即有隐藏的this指针。static成员没有this指针是关键!static function都是静态决议的(编译的时候就绑定了)而virtual function 是动态决议的(运行时候才绑定)例证#include #include using namespace std;class A { public: A(int a) { this->val2 = a; } static void get_val() { this->val2 = 4; cout <...
阅读全文
摘要:缘起#include #include using namespace std;class A { public: A() { cout #include using namespace std;class A { public: A() { cout #include using namespace std;class A { public: A() { cout << "default constructor!" << endl; } A(int i) { cout << "constr...
阅读全文
摘要:事因#include using namespace std;struct A{ A(int) {} A() {} void fun() {};};int main(){ A a(2); a.fun(); A b(); b.fun();}编译错误解释A b(); 是函数声明,返回值为A, 函数名为b不信你看#include using namespace std;int main(){ int test(); cout using namespace std;int main(){ int test(); cout << test << e...
阅读全文
摘要:argc是参数个数,定义为intargv是字符串数组,存的是参数,定义为char**或者char* argv[]比如你编译好的程序为my.exe在命令行执行 my.exe 1 2 3那argc就是4,argv[0]是"my.exe",argv[1]是"1",argv[2]是"2",argv[3]是"3";
阅读全文