@implementation Fraction
{
int numerator;
int denominator;
}
按照书中提供的例子将实例变量放到@implementation 中,但是在编译后一直出现错误:
In file included from testFraction.m:3:
Fraction.m:7: error: inconsistent instance variable specification
Fraction.m: In function '-[Fraction print]':
Fraction.m:15: error: 'numerator' undeclared (first use in this function)
Fraction.m:15: error: (Each undeclared identifier is reported only once
Fraction.m:15: error: for each function it appears in.)
Fraction.m:15: error: 'denominator' undeclared (first use in this function)
Fraction.m: In function '-[Fraction setNumerator:]':
Fraction.m:20: error: 'numerator' undeclared (first use in this function)
Fraction.m: In function '-[Fraction setDenominator:]':
Fraction.m:25: error: 'denominator' undeclared (first use in this function)
Fraction.m: In function '-[Fraction numerator]':
Fraction.m:30: error: 'numerator' undeclared (first use in this function)
Fraction.m: In function '-[Fraction denominator]':
Fraction.m:35: error: 'denominator' undeclared (first use in this function)
Fraction.m: In function '-[Fraction convertToNum]':
Fraction.m:40: error: 'denominator' undeclared (first use in this function)
Fraction.m:41: error: 'numerator' undeclared (first use in this function)
后来将实例变量放到@interface中,在GUN中编译通过。不知道是不是编译器不同,记录之。
分享到:
相关推荐
### 类变量与实例变量 ...类变量和实例变量虽然都是用来表示对象状态的信息,但它们的生命周期、存储位置以及访问方式都有所不同。正确地理解和使用这两种变量能够帮助开发者更高效地设计和实现面向对象的程序。
### Java实例变量、类变量、局部变量详解 #### 一、实例变量(对象变量、类成员变量) 实例变量,也称为对象变量或类成员变量,是定义在类中的非静态变量。它们没有使用`static`关键字修饰,并且是类的一个组成...
成员变量,也称为类变量或实例变量,是定义在类中的变量,但不在任何方法、构造器或代码块内部。这些变量与类的对象紧密相关,用来描述对象的状态或功能。 成员变量有两种主要类型:实例变量和静态变量。 1. 实例...
只要实例存在,程序就可以访问该实例的实例变量,在程序中访问实例变量的语法为:实例->实例变量。 然而,在 Objective-C 中,我们可以通过内部局部变量来模拟类变量。注意,static 关键字不能修饰成员变量,只能...
用户自定义变量是我们在Shell会话或脚本中创建的局部变量,它们只在当前的Shell实例中有效。例如,我们可以通过`name=John`来创建一个变量`name`并赋值为`John`。要查看这些变量,可以使用`set`命令,它会显示所有...
Java 变量是编程语言中存储数据的基本单元,它分为三种主要类型:类变量(静态变量)、实例变量和局部变量。每种类型的变量在内存中存储的位置、生命周期和访问方式都有所不同,以下是对这三种变量类型的详细说明。 ...
定义属性:实例变量 格式:[ 修饰符 ] 类型 变量名 [ = ? ] 实例变量定义在类中但在任何方法之外。 实例变量有默认值:各种各样的0。(同数组) 实例变量的作用域至少在本类内部,受访问控制符的限制。 ...
- 如果子类定义了与父类相同的实例变量,则子类实例变量会覆盖父类中的同名变量。 - 为了在子类方法中访问父类中被隐藏的实例变量,可以使用`super`关键字作为前缀。 #### final修饰符的作用 - **修饰变量**:一旦...
在 `Cupboard` 类中,`b3` 就是一个实例变量,它在创建 `Cupboard` 对象时被初始化,并且每个 `Cupboard` 实例都有自己的 `b3` 副本。 在代码的 `main` 方法中,我们看到了静态变量 `t2` 和 `c1` 的初始化。由于...
标签涉及的"apache"、"hp"、"linux脚本"、"php"、"变量"、"实例变量"暗示了这些预定义变量不仅限于PHP环境,还可能与Apache服务器、Linux系统以及不同硬件平台有关,同时强调了这些变量在实际编程中的应用。...
成员变量分为实例变量和类变量,实例变量在对象创建时分配内存,随对象的销毁而消失;类变量则从类加载开始存在于内存中,直到类被卸载。成员变量与局部变量的主要区别在于它们的位置、内存分配、生命周期和默认初始...
这里,我们将深入探讨如何通过父类类型变量和子类类型变量来调用对象的实例变量和方法,以及这对内存分配和控制的影响。 首先,我们来理解一下“同名的变量和方法”。在Java中,如果子类中定义了一个与父类相同名称...
在Java中,类的属性分为实例变量和非实例变量(即静态变量)。实例变量是每个对象独有的,而静态变量则由类的所有实例共享。 1. 实例变量与非实例变量 实例变量是每个对象创建时分配的一组内存空间,每个对象都有...
### Shell的特殊变量实例详解 在Shell编程中,有许多预定义的特殊变量,它们具有特定的功能和用途。本文将详细解析这些特殊变量的作用及其应用场景。 #### $0:Shell或Shell脚本的名字 - **作用**:`$0` 用于表示...
Java编程语言中有三种主要的变量类型:成员变量(也称为实例变量)、类变量(也称为静态变量)和局部变量。理解这些变量之间的区别是学习Java基础的重要部分,这对于编写高效、可维护的代码至关重要。 1. 成员变量...
下面将详细解释这些知识点,包括类变量、实例变量、方法类型(如实例方法、静态方法和类方法)以及继承等方面的内容。 ### 1. 类变量与实例变量 #### 类变量 在Python中,类变量是所有实例共享的变量,即所有对象...
在Objective-C中,成员变量(也称为实例变量)是对象结构的核心部分,它们定义了对象的属性和特性。本文将深入探讨成员变量的定义、操作函数以及在实际应用中的使用。 1. **成员变量的定义** 成员变量在Objective-...
- **实例变量与类变量**:实例变量是未使用`static`修饰的成员变量,它们属于类的实例,每创建一个对象就会为实例变量分配内存空间。类变量则是使用`static`修饰的成员变量,它们属于类本身,在JVM加载类时只会分配...
2. **同步实例变量**:如果必须使用实例变量,可以通过同步机制确保在修改实例变量时只有一个线程能够执行。例如,可以使用`synchronized`关键字来保护关键代码段。 3. **使用线程局部变量**:利用`ThreadLocal`类...