`
isiqi
  • 浏览: 16359473 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Thinking In C++ 学习笔记(2)名字控制

阅读更多

Thinking In C++ 学习笔记(2)名字控制

1. 函数内部的静态变量

函数内部的static变量存储在静态数据区而不是栈中,只在第一次调用函数时初始化一次。

编译器会为没有初值的内部类型的静态变量赋值为零(转化为适当的类型)。

2. 函数内部的静态对象

程序第一次执行到静态对象的定义点时(且仅一次)会调用对象的构造函数。

3. 静态对象的析构函数

静态对象的析构函数在程序从main()退出或调用exit()时被调用。在静态对象的析构函数内部调用exit() 将会造成无穷递归,调用abort()不会。

静态对象的销毁与初始化顺序相反。

C++中的静态成员

类的静态成员存储在一块单独的静态存储区,不管创建了多少该类的对象。

1. 定义静态数据成员的存储

静态数据成员的定义必须出现在类的外部(不允许内联)而且只能定义一次,因此它通常放在类的实现文件中。

//*.h

Class Values{

Static int size ;

};

//*.cpp

Int values::size = 10;

2. 静态数组的初始化

Class Values{

Static const int size = 10;

Static const int mem[];

};

Int Values::mem[] = { 10, 30, 67, 78};

Int man(){……}//end

内部类型的静态常量可以在类内部进行定义,但是对于其它静态对象或任意类型静态数组必须在类外部定义。

类内部的静态常量对象和对象的静态常量数组初始化必须在类的外部。

const成员数据是在构造函数初始化列表中初始化的。)

3. 静态成员函数

静态成员函数只能访问静态数据成员。它既不能访问非静态数据成员也不能访问非静态函数成员。

分享到:
评论

相关推荐

    C++学习经验总结 C++学习经验总结

    以下是对C++学习的一些关键知识点的总结: 1. **基础知识**:C++起源于C语言,因此掌握C语言的基本语法,如变量、数据类型、运算符、流程控制语句(if-else, switch, for, while)以及函数的使用是学习C++的起点。 ...

    浙江大学-翁凯-C++课件+源代码(9)

    这份资料结合了翁凯老师的课件与《Thinking in C++》这本经典英文原版教材,为学习者提供了一个全面而实践性强的学习平台。 《Thinking in C++》是一本由Bruce Eckel编写的权威书籍,它深入浅出地介绍了C++语言,...

    c++学习的50条黄金定律

    ### C++学习的50条黄金定律解析 #### 1. C++学习初期与C语言的关系 - **解析**:C++是基于C语言发展而来的,因此掌握C语言的基础对于学习C++非常有帮助。这并不意味着必须精通C语言才能学好C++,而是说C语言的一些...

    中文版Thinking in Java 4th编程思想(笔记)

    《中文版Thinking in Java 4th编程思想》是学习Java编程的重要参考资料,它深入浅出地介绍了面向对象编程的核心概念。下面将详细解读其中的主要知识点。 1. **对象导论** - **万物皆对象**:Java编程的核心是对象...

    前辈的c++50个建议

    《Thinking in C++》是一本非常著名的C++书籍,它不仅讲解了语言本身的特点,更重要的是教会读者如何用C++的思维方式来解决问题。通过这本书,你可以学会如何设计更高效、更面向对象的程序。 ### 3. 《The C++ ...

    如何学好C++语言,如果你准备学,一定要学好,那么我开个书单.

    - **《C++思维》**(Thinking in C++)— Bruce Eckel - **简介**:这本书深入浅出地介绍了C++的各种概念和技术,每个章节都充满了启发性的内容。 - **学习建议**:适合所有水平的读者,尤其是那些希望深入理解和...

    学习c++的50条忠告(初学者必看)

    - 推荐学习《Thinking in C++》,这本书对于理解面向对象编程非常有帮助。 - **建议**:同时参考《The C++ Programming Language》和《Inside The C++ Object Model》,这两本书对深入理解C++标准库和对象模型非常...

    给C++初学者的忠告

    - **解释**:这本书是C++学习的经典教材之一,能够帮助读者建立面向对象的思维方式,深入理解C++的核心概念。 - **建议**:利用这本书来系统地学习C++的基础知识,并通过书中提供的大量实例来练习和巩固所学内容。 ...

    关于c++的50条建议

    #### 建议2:通过《Thinking in C++》学习C++ - **解析**:这本书是C++领域的一本经典教材,作者Bruce Eckel通过深入浅出的方式讲解了C++的核心概念和最佳实践,特别适合初学者作为入门书籍。 #### 建议3:深入学习...

    天津大学计算机科学与技术专业考研经验分享.pdf

    考生应参考严尉敏主编的《数据结构(C语言版)》掌握基本概念,通过殷人昆主编的《数据结构(用面向对象的方法和C++语言)》学习算法,同时要熟悉吕凤翥主编的《C++语言基础教程》和Bruce Eckel的《Thinking in C++...

    java软件笔试题-MyNotebook:我大学时期的笔记本

    C++笔记 part 4: 数据结构与算法 part 5: 笔试/面试 part 6:专业基础 输入URL到页面加载完成的过程 part 7:读书笔记 thinking in java effective java Android开发艺术探索 Android插件化开发指南

    JAVA语言入门资料

    【JAVA语言入门资料】 ...“Java学习.doc”则可能包含了一些学习笔记或实践案例。 总之,这份“JAVA语言入门资料”是全面了解和学习JAVA的好起点,通过阅读和实践,初学者可以逐步掌握JAVA编程,踏上编程之旅。

    thinkinginjava笔记[参照].pdf

    《Thinking in Java》是一本深度解析Java编程语言的权威书籍,笔记主要涵盖了Java的核心概念和技术。以下是基于笔记内容的关键知识点: 1. **类与对象**: - 类是对象的蓝图,它定义了一组相似对象的属性(数据...

    Eckel:埃克尔书籍工作表

    他的著作如《Thinking in Java》、《Thinking in C++》等,深受全球程序员的喜爱,被广泛用作学习这些语言的经典教材。 【描述】:“埃克尔书籍工作表”很可能包含了Bruce Eckel关于Java编程的各类资料,包括书籍...

    第一年:该资料库包含我第一年所做的工作以及一些我收集的学习资料

    2. **C/C++**:基础且高效的编程语言,常用于系统编程和游戏开发。 3. **Java**:多平台的面向对象编程语言,广泛应用于企业级应用开发。 4. **DevOps**:一种文化和实践,旨在将开发和运维团队的工作流程融合,提高...

Global site tag (gtag.js) - Google Analytics