digitalmars.D - this - getting a reference to `this'
Consider the following:
----8<------
import std.stdio;
class Client
{
public:
this(char[] n)
{
name = n;
server.register(&this);
}
char[] name;
}
class Server
{
public:
void register(Client* c)
{
printf("Registering %*s (%p)\n", c.name, c);
}
}
Server server;
int
main()
{
server = new Server();
Client c = new Client("c");
printf("Client c is at %p\n", &c);
return 0;
}
------>8----
I get the
following output using the Digital Mars D Compiler v0.105 for x86
Linux:
Registering c (0xbffff410)
Client c is at 0xbffff42c
I was expecting both
pointer values to be the same, like in C++. What am I
missing?
Thanks,
Jay
Nov 01 2004
On Tue, 02 Nov 2004 03:25:38 +0000, Jay wrote:
this and c are references
remove all & and *
server.register(&this);
void register(Client* c)
printf("Client c is at %p\n", &c);
Nov 01 2004
In article <pan.2004.11.02.04.17.01.434756 yahoo.ca>, Ant says...On Tue,02 Nov 2004 03:25:38 +0000, Jay wrote:this and c are references removeall & and *Thanks, that did it.server.register(&this); void register(Client* c) printf("Client c is at %p\n", &c);
Nov 01 2004








Jay <Jay_member pathlink.com>