C/C++
文章平均质量分 68
nkorange
总要去面对
展开
-
effective C++ 读书笔记(上)
条款05:了解C++默默编写并调用那些函数 在类的声明中,没有声明而会由编译器声明的有:一个拷贝构造函数,一个拷贝赋值运算符和一个构造函数。也就是说,如果声明了一个带参的构造函数,那么编译器将不会为你声明一个无参的构造函数,因此在声明类的对象时必须调用含参数的构造函数,否则将会编译出错。如果没有声明这个带参的构造函数,反而不会出现这样的错误,这必须十分注意。拷贝赋值运算符使用时,如果类的成员里有引用变量或者常量,那么由于构造函数已经为类的这些成员初始化了,这些成员不能再被赋值,此时编译器就会拒绝生原创 2011-03-16 23:05:00 · 513 阅读 · 0 评论 -
effective C++ 读书笔记(中)
条款33:避免遮掩继承而来的名称 看下面的例子:class Base{private: int x;public: virtual void mf1() = 0; virtual void mf1(int); virtual void mf2(); void mf3(); void mf3(double); //...};class Derived: public Base{public: virtual void mf1(); void m原创 2011-03-19 17:48:00 · 471 阅读 · 0 评论 -
effective C++ 读书笔记(下)
条款42:了解typename的双重意义 C++里在模板定义中“typename”和“class”可以互换。但是有时候,必须使用typename:templatevoid print2nd(const C& container){ if (container.size()>=2) { C::const_iterator iter(container.begin()); ++iter; int value = *iter; std::cout 上面的代码原创 2011-03-20 23:22:00 · 467 阅读 · 0 评论 -
转载:C++程序的存储空间布局
C++程序的存储空间布局 作者:JuKevinC++程序是由一下几部分组成:(1) 正文段 (.text)程序代码就存储咋text 段,这是由C P U执行的机器指令部分。通常,正文段是可共享的,所以即使是经常执行的程序(如文本编辑程序、C编译程序、s h e l l等)在存储器中也只需有一个副本,另外,正文段常常是只读的,以防止程序由于意外事故而修改其自身的指令。当你在链接定位文件中将该符号放置在代码段 后,那么该符号表示的值就是代码段大小,编译连接时,该符号所代表的值会自动代入到源程序中。(2) 只读数原创 2011-03-18 12:39:00 · 683 阅读 · 0 评论 -
C++ traits初探
<br /><br />traits是一种特性萃取技术,它在Generic Programming中被广泛运用,常常被用于使不同的类型可以用于相同的操作,或者针对不同类型提供不同的实现.traits在实现过程中往往需要用到以下三种C++的基本特性:<br />enum<br />typedef<br />template (partial) specialization<br />其中:<br />enum用于将在不同类型间变化的标示统一成一个,它在C++中常常被用于在类中替代define,你可以称enum转载 2011-03-21 16:00:00 · 524 阅读 · 0 评论 -
C++模板元编程
<br /> <br /><br />作者:荣耀<br /><br />摘要<br /><br />本文描述了模板元编程技术的起源、概念和机制,并介绍了模板元编程技术在Blitz++和Loki程序库中的应用。 <br /><br />关键字<br /><br />编译期计算 模板元编程 Blitz++ Loki <br /><br />导言 <br /><br />1994年,C++标准委员会在圣迭哥举行的一次会议期间Erwin Unruh展示了一段可以产生质数的代码。这段代码的特别之处在于质数产生于转载 2011-03-21 22:05:00 · 621 阅读 · 0 评论 -
一道矩阵输出题
在论坛上看到有人提出这么一个问题,输入数字n,输出对应的矩阵。例如,输入:1输出:1输入:2输出:1 2 4 3输入3:输出:7 8 9 6 1 2 5 4 3要求:尽可能占用较少空间,时间复杂度尽量低,且对于n较大时(如:n=1原创 2013-07-02 10:40:57 · 641 阅读 · 0 评论