`
kmplayer
  • 浏览: 514593 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

effective c++导读

阅读更多
1,身经百战的开发人员都认识到,理解C++各个特性之间的互动关系,才是使用这个语言最重要的关键之处.
2,其他书籍描述的是C++语言的各个成分,本书则告诉你如何将那些成分组合起来,完成一个有序的程序.其他书籍告诉你如何让程序顺利编译,本书则告诉你如何避开编译器不会告诉你的一些问题.
3,准则毕竟是准则,可能存在例外情况.这正是为什么每个条款都带有一堆解释的原因.这些解释是本书最重要的资产.
4,声明和定义:
声明(declaration):只是将一个object,function,class或template的型别名称告诉编译器.
定义(definition):
object:编译器为它配置内存的地点.
function或function template:提供函数本体
class或class template:列出class的所有members.
实例代码:
#include <iostream>
using namespace std;

//声明:
extern int x;//object声明
int numDigits(int number);//function声明
class Clock;//class声明
template<class T>
class SmartPointer;//类template声明

int main()
{
    x=2000;
    cout<<numDigits(x)<<endl;
    return 0;
}
//定义:
int x; //配置内存的地点
int numDigits(int number)//提供函数体
{
    int cnt=1;
    if(number<0)
    {
        cnt++;
        number=-number;
    }
    while(number/=10) cnt++;
    return cnt;
}
class Clock //列出所有的members
{
public:
    Clock();
    ~Clock();
    int hour() const;
    /*...*/
};
template<class T>
class SmartPointer
{
public:
    SmartPointer(T* p=0);
    ~SmartPointer();
    T* operator->() const;
    T& operator*() const;
    /*...*/
};

5,如果你想要产生一个对象数组,但该对象没有提供default constructor,通常的做法是定义一个指针数组取而代之,然后利用new一一将每个指针初始化.
实例代码:
#include <iostream>
using namespace std;

class C
{
public:
C(int x){} //不是默认构造函数
};
//C arrayC[2];  //错误

int main()
{
    C* parArray[2];
    parArray[0]=new C(5);
    parArray[1]=new C(7);
    return 0;
}

6,身为一个程序员,只要必须用到字符串,就应该尽可能使用标准的string型别;那种"开发自己的字符串类别,以象征具备C++某种成熟功力"的日子已经过去.

7,initialization(初始化)和assignment(赋值).
(1)对象的初始化行为发生在它初次获得一个值的时候;赋值发生于"已初始化对象被赋值新值"的时候.
(2)前者由constructor执行;后者由operator=执行.
(3)这两个函数所考虑的事情不同:
Constructor通常必须检验其引数的有效性,而大部分assignment不必如此,因为其引数必然是合法的(因为已被构建完成).
另一方面assignment动作的目标可能已经拥有配置得来的资源,在新资源被赋值过去之前,旧资源必须先行释放.
分享到:
评论

相关推荐

    Effective C++ 中文版

    有人说C++程序员可以分成两类,读过Effective C++的和没读过的。世界顶级C++大师Scott Meyers成名之作的第三版的确当得起这样的评价。当您读过《Effective C++中文版(第3版改善程序与设计的55个具体做法)》后,就...

    More Effective C++pdf版

    1. 译序(侯捷)和导读部分,作者和译者向读者介绍了书籍的背景和阅读指南,包括C++语言的特点、编程习惯和书中术语的解释,以及如何反馈问题和获取更新内容的方式。 2. 基础议题部分,涵盖了一些C++编程的基础概念...

    More Effective C++ 中文版

    最后,作者通过译序、导读以及各个ITEM的讲解,帮助读者在C++的学习道路上更加坚定,也提供了许多实用的编程建议和案例,帮助程序员在实际编程中游刃有余,写出更加健壮和高效的代码。这本《More Effective C++中文...

    More Effective C++(WQ版)

    根据提供的文件信息,“More Effective C++ (WQ版)”是一本深入探讨C++编程语言高效编程实践和技术要点的专业书籍。本书由Scott Meyers撰写,并有侯捷等人参与翻译及补充内容。下面将从书名、描述以及部分章节内容中...

    Scott-More Effective C++

    《Scott-More Effective C++》这本书是Scott Meyers所著,侯捷负责译序与导读。本书从不同的角度介绍了C++编程语言的高效使用技巧,内容被划分成多个项目(Item),涵盖了从基础议题到异常处理、效率、技巧和杂项等...

    More Effective C++.doc

    《More Effective C++》是C++编程领域的一本经典书籍,由Scott Meyers撰写,侯捷翻译并提供了译序和导读。这本书旨在帮助C++程序员提升编程技能,提高代码效率和质量。书中通过35个独立的条目,涵盖了基础议题、...

    More Effective C++(

    《More Effective C++》是C++编程领域的一本经典书籍,由Scott Meyers撰写,旨在帮助程序员更好地理解和利用C++的高级特性,提高代码效率和可维护性。书中的35个条目分别探讨了C++语言的关键概念和技术,涵盖基础...

    more effective c++ doc

    《更有效的C++》一书由Scott Meyers撰写,侯捷翻译并导读,是一本深入探讨C++编程语言中高效编程实践的指南。该书涵盖了从基础议题到高级技巧的一系列知识点,旨在帮助读者理解并掌握C++的核心概念,从而编写出更高...

    More Effective C++ 中文word版

    《More Effective C++》是C++编程领域的一本经典书籍,由知名C++专家Scott Meyers撰写。这本书探讨了如何更高效地使用C++,通过35个编程实践和建议,帮助开发者提升代码质量,避免常见陷阱,充分利用C++语言的特性。...

    More Effective c++

    《More Effective C++》是C++编程领域的一本经典书籍,由Scott Meyers撰写,旨在帮助程序员提升他们的C++编程技巧和效率。书中的条目覆盖了基础议题、运算符、异常处理、类设计等多个方面,通过深入浅出的方式探讨了...

    more effective c++

    ### 更Effective C++ #### 译序与导读 《More Effective C++》是继《Effective C++》之后由Scott Meyers撰写的另一部力作。本书深入解析了C++的使用技巧和技术内幕,对于想要深入了解C++语言特性的程序员来说是一...

Global site tag (gtag.js) - Google Analytics