C++11 的 Inheriting constructors 特性在 GCC
#include using namespace std;class CTest{public: CTest(int aa): a(aa) { cout << "constructor: a = " << a << endl; } CTest(const CTest &in) { a = in.a; cout << "copy co
先看一个例子:#include class A{public: A() { ::std::cout << "constructor: A" << ::std::endl; } // 构造函数不能为 virtual A(int aa): a(aa) { ::std::cout << "constructor: A, a = " << a << ::std::endl; }
方法一:优先队列方法二:liaobiao
1. 成员函数2.
1. 字符串 --> 数字ato: atoi(), atol(), atoll(), atof()strto: strtol(), strtoul(), strtod()strto 是 ato 的升级版:(1) strto 支持转化成多种进制(2) ato 对错
list 由双向链表实现,下面主要介绍 STL list 的c
explicit priority_queue (const Compare& comp = Compare(), const Container& ctnr = Container(
The 'c' indicates 'cleared.' The allocated memory is initialised, or cleared. The initialisation value used by calloc is 0.http://answers.yahoo.com/question/index?qid=20080217131743AAlmmpy
1. 类模板和构造函数和前面介绍的ro
声明常量const int i = 10; // 常用int const i = 10; // 不常用const int i; // 错误1 和 2 意思一样,都是 i 的值不可修
#include using namespace std;void TestException(int argc){ try { if (argc != 2) { cout << "number of params not 2" << endl; throw -1; }
C语言中经常会出现文件重复包含而导致全局变量重复定义,下面以一个例子说明-----MakefileCC = gccOBJS = main.o errhandle.o
【注意】C标准没有具体规定各种类型数据占用存储单元的长度,这是由各编译系统自行决定的。≥C标准只要求
C/C++ 中静态变量初始化的问题归根节点在于一点:静态变量的创建顺序【禁止或不推荐】用函数返回值初始化静态变量int func(){ return 50;}void test(){ static int i = func();}int main(){ test(); return 0;}这段代码用 C 写是编译出错的,因为 C 中静态变量如果在声明
在读 Google Protocol Buffer 的源码时发现一个段很晦涩的代码
先看一个例子:#include using namespace std;class Base{public: Base(int i): common(i) {} virtual ~Base() { cout << "destructing Base" << endl; } virtual void Both() const { cout << "common="
将 cha
#pragma预处理指示供编译器实现一些非标准的特性,C标准没有规定#pragma后面应该写什么以及起什么作用,由编译器自己规定。有的编译忽略这些指
#include class Base1{private: char aChar; short aShort; int aInt; float aFloat;};class Derived1: public Base1{private: chant
#include #include class Test{public: Test(int ii) : i(ii) {} ~Test() { std::cout << i << std::endl; } public: int i;};int main(int argc, char* argv[]){ // #test will be d
使用 algorithm 中的 transform:#include #include #include int main(){ std::string str = "FrancisHe"; std::transform(str.begin(), str.end(), str.begin(), ::toupper); std::cout << str << s
gtest 代码目录结构说明:以 gtest-1.7.0 为例cmake, codegear, make, msvc, xcode构建测试项目的构建文件,如 make 就是 Makefile.To
这段程序使用了 C++ 11 中的线程库:// mutex::lock/unlock#include // std::cout#include // std::thread#include // std::mutexstdtionvo
time_t/usr/include/time.htypedef __time_t time_t;/usr/include/bits/time.hstruct timeval { __time_t tv_sec; /* Seconds. */ __suseconds_t tv_usec;ds. */ }
1. 在 64 位 Linux 下,结构体字段默认按 8 字节对齐;32 位 Linux 下,默认 4 字节对齐。2. 显示指定对齐方式时,会受到机器字长的约束,
区别:memmove 重叠时能保证 dst 数据正常,但 memcpy 就不会保证了。#include #include int main(){ // case 1: not overlap char str[6] = "
由于 strtoll, strtoull 返回值不能标识处理是否成功,所以需要借助 errno, 看下面这段代码:#include #include #include int main(int argc, char* argv[]){ if (argc != 2) { prargv[0]); r
#include #include #include // xxx.so --> xxx --> xxx_get_instint main(){ std::string so_name = "xxx.so"; const char* dot_pos = strstr(_pos)
map, set 为 类模板,默认使用的 comparator 为类模板 less, 因此我们需要重载关系运算符 ".下面的例子是一个排行榜,排序规则如下:1
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号