On Friday, 6 April 2018 at 13:41:50 UTC, aerto wrote:
its possible to make this work ??

import std.stdio;


class UUsers
{
public:
    int age;
}


class users
{
public:
    int[int] uid;

}


void main() {
        
        users newuser = new users();
        newuser.uid[0].age = 23;
        writeln(newuser.uid[0].age);

}

This will work
import std.stdio;

class UUsers
{
public:
    int age;

}


class users
{
public:
    UUsers[] uid;

}


void main() {

        users userList = new users();

        userList.uid ~=  new UUsers();

        userList.uid[0].age = 24 ;

        writeln(userList.uid[0].age);
}

Let me try to explain why
Basically, what you wanted to do is have two classes
one will hold user's information, and another holding a user list

For the second class to hold user list
this line
int[int] uid;

became this line
UUsers[] uid;

In you code, there was no relation between the two classes
Then in your main

You instantiate your users list object
users userList = new users();

Then you instantiate a user object and append it to the list (~= is the append operator)

userList.uid ~=  new UUsers();

Finally you assign a value to your user object age and print it
userList.uid[0].age = 24 ;
writeln(userList.uid[0].age);

Reply via email to