`
wgs7909
  • 浏览: 5403 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

为什么编译器会为类成员赋初始值,而不为方法成员赋初始值?

 
阅读更多

为什么编译器会为类成员赋初始值,而不为方法成员赋初始值?

不给类成员初始值,而只是声明一下,编译器允许。

但要是不给方法成员赋初始值,编译器就不允许了。

这是为什么?

分享到:
评论

相关推荐

    TechNotesDoc#Notes#函数局部变量赋初始值问题1

    局部变量初始值问题对于局部变量ulAirsCompleFlg,函数本意是进来后必须为0,然后处理后返回,但是实际应用中发现,编译器并不会把ulAirsCompl

    Linux初始值设置

    首先,开发者会使用GCC编译器将C语言编写的内核源代码转化为汇编代码,然后通过链接器将各个模块连接起来,形成一个完整的内核映像。最后,使用工具如`mkimage`生成可以由引导加载程序识别的可引导映像文件。 第 3 ...

    C++类的静态成员初始化详细讲解

    这里,`nameSize`是一个const整型静态成员,用常量值初始化,因此可以在类体内指定。然而,数组`name`必须在类定义之外初始化,因为数组不是有序类型,不能在类体内初始化。尽管`nameSize`是私有成员,但静态数据...

    类继承的初始化顺序类,继承的初始化顺序

    如果一个成员变量的初始化依赖于另一个成员变量的值,那么应该确保后者先被初始化。 #### 构造函数中的初始化块 除了构造函数外,初始化块也是一种重要的初始化手段。初始化块可以在类定义中定义,并且在构造函数...

    类的静态数据成员-用来统计对象存在的个数

    在描述中提到的问题,当尝试在头文件(例如`.h`或`.hpp`)中初始化静态数据成员时,如果该头文件被多个源文件(`.cpp`)包含,编译器会为每个包含它的文件分别创建一个静态成员的副本,从而导致“obj重复定义”的...

    C++构造函数初始化列表

    1. **默认构造函数的隐式初始化**:如果没有提供显式的初始化,编译器会使用默认构造函数来初始化成员变量,这可能不是预期的行为。 2. **const成员变量的强制初始化**:对于声明为const的成员变量,必须在构造函数...

    class编译器.7z

    - **魔数**:每个`class`文件的开头都包含一个魔数(Magic Number),它的值为0CAFEBABE,用于标识这是一个合法的Java `class`文件。 - **版本号**:接着是文件格式版本号,包括次版本号和主版本号,用于识别JVM的...

    关于C++类的成员初始化列表的相关问题

    这样,`i` 的值将正确地设置为 `j` 的初始值。 总之,C++类的成员初始化列表是构造函数的一个重要特性,用于高效、正确地初始化成员变量。了解何时和如何使用它对于编写高效、无误的C++代码至关重要。在编写涉及...

    详解C#中使用对象或集合的初始值设定项初始化的操作

    编译器通过先访问默认实例构造函数然后处理成员初始化处理对象初始值设定项。因此,如果默认构造函数在类中声明为 private,那么需要公共访问权的对象初始值设定项将失败。 下面的示例演示如何使用对象初始值设定项...

    ActionScript 3.0编译器编译错误大全

    如果一个变量在使用前未被赋予初始值,将默认为`undefined`,这可能导致运行时错误。 ### 错误1053:访问未定义的属性 尝试读取一个不存在的属性将引发此错误。确保所有访问的属性都是有效的。 ### 错误1054:`...

    C#不同类型的成员变量(字段)的默认值介绍

    创建类的一个实例时,在执行构造函数之前,如果你没有给成员变量赋初始值,C#编译器缺省将每一个成员变量初始化为他的默认值。 如果变量是方法的局部变量,编译器就会认为在使用该变量之前,代码必须给它显示的设定...

    2.3命名返回值优化和成员初始化队列共3页.pdf.zip

    在构造函数的初始化列表中,我们可以指定每个成员变量的初始值,这些信息会被放入队列中。成员初始化队列确保了初始化顺序与成员声明的顺序一致,这符合C++的标准要求。此外,它也支持对基类和成员的构造函数的调用...

    C++类的初始化介绍及实现

    值得注意的是,如果类的成员变量在类定义时没有初始化,或者使用了用户定义的默认值,那么在构造函数的成员初始化列表中必须显式提供这些成员的初始值。如果忽略了一个成员的初始化,编译器会报错,因为这是强制性的...

    Java 成员初始化要注意的两种不同的情况

    在Java编程语言中,成员初始化是创建对象时为类的实例变量赋予初始值的过程。本文将详细探讨Java成员初始化的两种不同情况,以及与之相关的基础知识。 首先,我们来看第一种情况:类内的变量初始化。当声明一个类的...

    static成员变量不属于对象的一部分,而是类的一部分,所以程序可以在还没有诞生任何对象的时候就处理此种成员变量

    如果尝试这样做,编译器会报错,因为构造函数可能被多次调用,而`static`成员变量只初始化一次。同样,为了避免头文件被多次包含导致初始化代码被执行多次,初始化`static`成员变量的代码不应放在头文件中。正确的...

    PClint编译器

    3. **未初始化的变量**:它能够找出程序中可能未初始化的变量,防止因为使用未定义的值而引发的运行时错误。 4. **内存管理**:通过分析内存分配和释放,PClint能帮助发现潜在的内存泄漏和悬挂指针问题,这对于维护...

    JAVA编程思想课后习题答案.pdf

    * 代码中定义了两个静态变量:int i和char c,但未赋初始值。在Java中,静态变量是在类加载时初始化的,且只有一个副本,所有实例共享该变量。 * 注意:未使用的变量会被编译器忽略。 二、HelloWorld * 知识点:主...

    C++强制访问类的私有成员

    通常情况下,编译器会自动对齐这些成员变量,以提高程序运行时的性能。例如,在上面的代码示例中,`class A`有一个私有成员变量`char *str`。当创建一个`A`类型的对象时,这个指针会被初始化为指向字符串"nothing"。...

    PL0编译器扩展

    在C语言中,"++"用于自增一个变量的值,而"+="则是将一个变量的值与另一个值相加再赋回给原变量。在PL0的语法扩展中,我们需要定义新的解析规则来处理这些运算符。例如,"++var"将被解析为先增加var的值然后再使用,...

    C++必须知道的问题

    13. **静态函数**:静态成员函数属于类而不是类的任何实例,它可以不依赖`this`指针,常用于共享类数据。 14. **访问非公有成员**:可以通过友元函数或派生类访问非公有成员。 15. **抽象类**:包含至少一个纯虚...

Global site tag (gtag.js) - Google Analytics