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);