Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
11
Task/Break-OO-privacy/D/break-oo-privacy-1.d
Normal file
11
Task/Break-OO-privacy/D/break-oo-privacy-1.d
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
module breakingprivacy;
|
||||
|
||||
struct Foo
|
||||
{
|
||||
int[] arr;
|
||||
|
||||
private:
|
||||
int x;
|
||||
string str;
|
||||
float f;
|
||||
}
|
||||
16
Task/Break-OO-privacy/D/break-oo-privacy-2.d
Normal file
16
Task/Break-OO-privacy/D/break-oo-privacy-2.d
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import std.stdio;
|
||||
import breakingprivacy;
|
||||
|
||||
void main()
|
||||
{
|
||||
auto foo = Foo([1,2,3], 42, "Hello World!", 3.14);
|
||||
writeln(foo);
|
||||
|
||||
// __traits(getMember, obj, name) allows you to access any field of obj given its name
|
||||
// Reading a private field
|
||||
writeln("foo.x = ", __traits(getMember, foo, "x"));
|
||||
|
||||
// Writing to a private field
|
||||
__traits(getMember, foo, "str") = "Not so private anymore!";
|
||||
writeln("Modified foo: ", foo);
|
||||
}
|
||||
3
Task/Break-OO-privacy/D/break-oo-privacy-3.d
Normal file
3
Task/Break-OO-privacy/D/break-oo-privacy-3.d
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Foo([1, 2, 3], 42, "Hello World!", 3.14)
|
||||
foo.x = 42
|
||||
Modified foo: Foo([1, 2, 3], 42, "Not so private anymore!", 3.14)
|
||||
Loading…
Add table
Add a link
Reference in a new issue