Thread overview |
---|
April 06, 2018 c2 classes | ||||
---|---|---|---|---|
| ||||
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); } |
April 06, 2018 Re: c2 classes | ||||
---|---|---|---|---|
| ||||
Posted in reply to aerto | 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);
>
> }
It depends on what you want to achieve...
This is runnable:
```
import std.stdio;
class UUsers
{
this(int val)
{
age = val;
}
public:
int age;
}
class users
{
public:
UUsers[int] uid;
}
void main() {
users newuser = new users();
newuser.uid[0] = new UUsers(23);
writeln(newuser.uid[0].age);
}
```
|
April 06, 2018 Re: c2 classes | ||||
---|---|---|---|---|
| ||||
Posted in reply to aerto | 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); |
April 06, 2018 Re: c2 classes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Alex | On Friday, 6 April 2018 at 14:31:49 UTC, Alex wrote: > 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); >> >> } > > It depends on what you want to achieve... > This is runnable: > ``` > import std.stdio; > > > class UUsers > { > this(int val) > { > age = val; > } > public: > int age; > } > > > class users > { > public: > UUsers[int] uid; > > } > > > void main() { > > users newuser = new users(); > newuser.uid[0] = new UUsers(23); > writeln(newuser.uid[0].age); > > } > ``` A question from me, since I am also still learning D what is the difference between those following two declarations > UUsers[int] uid; UUsers[] uid; |
April 06, 2018 Re: c2 classes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali | On Friday, 6 April 2018 at 14:43:25 UTC, Ali wrote: > On Friday, 6 April 2018 at 14:31:49 UTC, Alex wrote: >> On Friday, 6 April 2018 at 13:41:50 UTC, aerto wrote: >>> [...] > A question from me, since I am also still learning D > what is the difference between those following two declarations >> UUsers[int] uid; UUsers[] uid; T[U] declares an Associative Array but T[] declares a Dynamic Array. Some examples will help: --- void main() { char[int] s1; char[] s2; s1[1] = 'c'; //allowed, it is an Associative array. key 1 stores value 'c' s2[0] = 1; //error: out of bounds of array s2 } --- You can check out the spec[0] and the tour[1] [0]: https://dlang.org/spec/hash-map.html [1]: https://tour.dlang.org/tour/en/basics/associative-arrays |
Copyright © 1999-2021 by the D Language Foundation