FROM : Glenn English
DATE : Fri Aug 01 21:10:22 2008
Wayne Shao wrote:
> It seems that every object is a pointer in the sample code I have
> seen. Is there any distinction between an object and its pointer?
>
> In C++, C* c; would be an uninitialized pointer. But the following
> line will creates an object with the constructor C().
>
> C c;
>
> It seems that there is no such equivalent syntax in Objective-C.
> objects are created either from factory pattern or [[A alloc]
> someInitMethod ....];
> so, is it possible to write?
>
> NSString a;
> NSNumber b;
Sure. And it'll even compile. But you'd better not try to do much with
them:-)
<my understanding>
Objects in o-c are just plain old structs. And to get to them, you have
to have a pointer.
And the C++ syntax you refer to doesn't exist in o-c. At least it
doesn't do what it does in C++.
So C* c is indeed an uninitialized pointer to a C, just like it says it
is. And C c declares a struct of type C that you can't do anything with,
also just like it says.
C* c = [C new] (or equivalent) is the way do some useful work...
</my understanding>
--
Glenn English
<email_removed>
DATE : Fri Aug 01 21:10:22 2008
Wayne Shao wrote:
> It seems that every object is a pointer in the sample code I have
> seen. Is there any distinction between an object and its pointer?
>
> In C++, C* c; would be an uninitialized pointer. But the following
> line will creates an object with the constructor C().
>
> C c;
>
> It seems that there is no such equivalent syntax in Objective-C.
> objects are created either from factory pattern or [[A alloc]
> someInitMethod ....];
> so, is it possible to write?
>
> NSString a;
> NSNumber b;
Sure. And it'll even compile. But you'd better not try to do much with
them:-)
<my understanding>
Objects in o-c are just plain old structs. And to get to them, you have
to have a pointer.
And the C++ syntax you refer to doesn't exist in o-c. At least it
doesn't do what it does in C++.
So C* c is indeed an uninitialized pointer to a C, just like it says it
is. And C c declares a struct of type C that you can't do anything with,
also just like it says.
C* c = [C new] (or equivalent) is the way do some useful work...
</my understanding>
--
Glenn English
<email_removed>
| Related mails | Author | Date |
|---|---|---|
| Wayne Shao | Aug 1, 20:43 | |
| Ken Thomases | Aug 1, 20:47 | |
| Clark S. Cox III | Aug 1, 20:54 | |
| Glenn English | Aug 1, 21:10 | |
| Jens Alfke | Aug 1, 21:18 | |
| Clark S. Cox III | Aug 1, 21:24 | |
| Arthur Coleman | Aug 1, 21:38 | |
| Clark Cox | Aug 1, 22:01 | |
| Giulio Cesare Sola… | Aug 1, 22:07 | |
| Clark S. Cox III | Aug 1, 22:15 | |
| Glenn English | Aug 1, 22:20 | |
| Michael Ash | Aug 1, 22:47 | |
| Sherm Pendley | Aug 1, 23:07 | |
| Daniel Staal | Aug 2, 00:27 | |
| Negm-Awad Amin | Aug 2, 09:05 | |
| Negm-Awad Amin | Aug 2, 09:09 | |
| mm w | Aug 2, 18:50 | |
| mm w | Aug 2, 20:19 | |
| Keary Suska | Aug 2, 22:53 | |
| Negm-Awad Amin | Aug 4, 08:31 |






Cocoa mail archive

