alias this private?
Ali Çehreli
acehreli at yahoo.com
Sun Dec 9 20:50:16 PST 2012
On 12/09/2012 11:52 AM, js.mdnq wrote:
> Well, I would not say they are exactly the same.
Do they have to be exactly the same? You are showing a method that fails
to satisfy a requirement, I show another method which according to fail
to satisfy another requirement. Software is engineering as well. What is
the problem? Let's just solve it.
> In your case you are
> aliasing on opGet while I'm talking about aliasing on the struct itself.
I know.
> e.g., there might be other members you do want the user to have access
> too.
Then I give access to those members.
> With your's, they won't be able to access them(your's is actually
> more restrictive).
I don't see that.
> For example, how can they access a "Validate" method like I have using
> your struct?
It is so trivial that I am beginning to think I have not understood a
tiny bit of what you have been saying, but here it goes: :)
struct sPassword
{
private:
string Password_;
public:
alias opGet this;
void opAssign(string value)
{
Password_ = value;
}
string opGet() { return "******"; }
bool Validate(string pass) { return pass == Password_; }
}
void main()
{
sPassword myPass;
myPass = "hello";
assert(myPass == "******");
assert(myPass.Validate("hello")); // <-- here
}
I hope others can show me what I've been misunderstanding. :-/
Ali
More information about the Digitalmars-d-learn
mailing list